Definition of Ada
Ada can be defined as a statically typed, structured, wide-spectrum, object-oriented, imperative, and high-level programming language used in the field of computing. The programming language has its roots in Pascal and other similar programming languages.
The language includes a built in support for design by contract, immensely robust typing, offering tasks, clear concurrency, protected objects, non-determinism, and synchronous passing of message. The language also has ability to enhance safety and maintenance of code through the use of compiler for identifying errors in favour of errors of runtime.
History of Ada
In the era of 1970s, the US Department of Defense (DoD) raised questions regarding a wide variety of programming languages that were used within its embedded computer system projects. This led towards the issuance of request of proposals for the creation of a new programming language. The department finally selected four contractors to present their proposals.
The Green proposal, which was developed at CII Honeywell Bull, was selected in the year 1979. The project was named after Augusta Ada, who was the Countess of Lovelace, and was called Ada. The programming language LIS, which was developed by Ichbiah and his team in the era of 1970s, had a massive influence on the Green proposal. The preliminary reference manual for Ada was developed and published ACM SIGPLAN Notices in June 1979.
The entire community shifted its attention to the Ada Programming language from the time of its early introduction. The proponents of this language and others professional in the field estimated that Ada would not only be used in the area of Defense related but also in the area of general purpose programming and associated tasks. It was publicly stated by Ichbiah after the passage of 10 years only 2 programming languages, Ada and Lisp, would remain.
The performance of the compilers of Ada was improved significantly by the end of 1980s and beginning of 1990s. However, a number of barriers still hindered the developers from exploiting the full potential of this language. One such barrier was the tasking model that was not similar to the tasking model that most of the real time programmers were familiar with.
Due to its critical support features of Ada, currently it is not only used in the development of military application but also in the development of commercial applications that can be severely damaged by security bugs.