Ada 95: The Language For A Complex World
Here you will find information about Ada 95.
Ada Basic Information
Creating Ada Software
Ada Information Clearinghouse
Ada Usage and Success Stories
Interesting Ada Articles
Who's Using Ada?
SIGAda's Booth Schedule
“Powered by Ada” Poster Gallery
Ada in Universities
Ada Organizations Around the World
Ada Related Conferences
Contacting Others in Ada Community
Local SIGAda Chapters
Ada Information Resources
SIGAda Working Groups
|ACM and SIGAda Info
Joining ACM or SIGAda
Previous SIGAda Conferences
History of SIGAda
Augusta Ada (Byron) Lovelace
Women in Computer Science
Computer Science Guide
ACM Anti-Harassment Policy
Named in honor of the world's first published computer programmer, Ada Byron King, Countess of Lovelace, Ada is a high-level programming language designed specifically for developing applications where correctness, safety, reliability, and maintainability are primary requirements.
Ada is an industrial-strength language used throughout the world in the domains of avionics, communication, space, transportation, military, and industrial process control. Ada is frequently the hidden software that makes life safe in applications that fly most passenger/private aircraft as well as control these aircraft on the ground. Ada is found in high-speed trains, metro systems, tunnels, cell phones, and pleasure boats. Recently Ada has migrated to the medical, energy, financial, and Internet domains. Because of its reliability, Ada is even used to order movies from TV set top boxes. When a software failure can result in a human life or a substantial financial loss, Ada is the language of choice.
The Ada language was originally developed to address the mission-critical needs of military systems, which were characterized as having hard real-time, distributed, and safety-critical requirements. It was characterized as having strong typing, exception processing, and language structure. Strong typing is important to significantly reduce common programming errors by explicitly mapping objects to the appropriate types. Exception processing allowed for the handling of dangerous hardware and software conditions encountered during execution, facilitating the return to a known safe state. The language structure added mechanisms to support key software engineering goals to improve the quality of programs.
The Ada language had a major update in 1995 (Ada 95). The major enhancements included full object-oriented programming (OOP), robust real-time/distribution facilities (that includes features such as multi-threading, protected objects, alternative scheduling models), and support of programming-in-the-large for the development of very large applications with many programmers. It is intended to work well in a multi-language environment and has standardized features to support interfacing to other languages to facilitate reuse.
The Ada Language Reference Manual defines the core language and a large number of standard library packages. The Ada Rationale provides a description of the main features of the language and library and explanations of the choices made by the language designers. There are also a number of secondary standards available. A noteworthy one is the Ada Semantic Interface Specification (ASIS), which defines an interface to the Ada compilation environment. This facilitates the use of code analysis tools to assess code quality, which could result in program failure (e.g., infinite loops, logic errors, paths in a subprogram that do not set all out parameters). Such errors are frequently very difficult to detect in other programming languages.
Excellent free and commercial Ada compilers and development tools are available for a wide variety of development and target processors. To ensure that Ada compilers generate high-quality code that is relatively portable between competing vendors' compilation environments, Ada compilers are tested for conformance to the Ada ISO standard by an outside laboratory. The list of conforming compilers is available on the Ada Information Clearinghouse (AdaIC) website along with a host of other valuable Ada information.
University experience shows that student programmers have less difficulty learning Ada than other languages. The feedback provided by an Ada compiler points out many errors that other language compilers cannot detect. A study of difficult bugs in commercial software collaborates this experience. Ada compilers would have detected nearly 90% of the errors found in the C family software analyzed. This study provides insight as to why Ada is used for applications with correctness, safety, reliability, and maintainability requirements.
Ada 95 is the first internationally standardized object-oriented programming language. Ada 95 was approved as an ISO standard on 15 February 1995, superseding the 1983/1987 standards. The Ada 95 ISO standard was updated in 2001 with a number of minor corrections using the Technical Corrigendum process. The current ISO Ada standard with Technical Corrigendum is known as:
ISO/IEC 8652:1995 Information Technology -- Programming Languages -- Ada ISO/IEC 8652:1995/Cor 1:2001 Information Technology -- Programming Languages -- Ada
The Ada standards are available from ISO by going to the "ISO Catalogue" section, selecting the "search option" of "Text", "Type in search string" of "Ada", and selecting "Start Search".
Ada is distributed as national Standards as well. For example, as of March 2002, Ada is available as a Japanese International Standard in the Japanese language; in the United States, Ada is available as:
ANSI/ISO/IEC 8652-1995 Information Technology -- Programming Languages -- Ada ISO/IEC 8652/Cor1:2001
ISO requires all standards to be updated every ten years. Currently, Ada experts and working groups around the world are reexamining Ada to update the standard. In this way, the Ada community guarantees that the language keeps abreast of modern technology particularly that associated with current software engineering practices and new hardware innovations.