Ada (programming language)
|Paradigms :||imperative , structured , object-oriented|
|Designer:||Jean Ichbiah , S. Tucker Taft|
|Typing :||static , explicit, strong|
|Important implementations :||GNAT|
|Standardizations:||ANSI / MIL-STD-1815 1983, ISO-8652 1995, Ada 2005, Ada 2012|
|Influenced by:||Algol 68 , Pascal , Modula-2 , C ++ , Java|
|Affected:||C ++ , Eiffel , PL / SQL , Ruby , VHDL , Seed7|
Ada is a structured programming language with static type binding . It was designed by Jean Ichbiah for Honeywell Bull in the 1970s. It was the first standardized high-level language . Ada is similar in appearance to the programming language Pascal and, like Modula-2, is to be regarded as a Wirth language . Just like Modula, Ada is also stricter in programming than Pascal. The language was named after Lady Ada Lovelace (1815-1852), the daughter of Lord Byron and employee of Charles Babbage , who is also referred to as the first woman programmer .
Ada was initially heavily sponsored and supported by the US Department of Defense . The three common versions are Ada 83 (the first standardized Ada, which was initially just called Ada, but was later called Ada 83 to distinguish it from its successor), Ada 95, which was expanded to include numerous new language elements, and Ada 2005 (also known as Ada 05 known), the standardization process of which was completed in 2007. Ada compilers can undergo a standardized test ( validation ), which is a basic prerequisite for professional use. Due to the high requirements that validated compilers have to meet, Ada has prevailed above all in safety-critical areas, for example in air traffic control , in safety equipment for railways , in weapon systems , space travel , medicine or the control of nuclear power plants .
Ada was aimed originally at Embedded ( embedded ) and real-time systems (real-time systems) and is still often used for these purposes. Ada 95 - designed by Tucker Taft of Intermetrics between 1992 and 1995 - improved the possibilities for designing numerical, system-related and banking programs. Outstanding features of Ada are, for example, the strict type system ( strong typing ) , numerous checks on program runtime , concurrency , exception handling and generic systems . Ada 95 introduced so-called tagged types (expandable types), which further expand Ada's underlying concept of programming through expansion and enable dynamic polymorphism .
Implementations of Ada usually do not use garbage collection (garbage collection) to memory management , the standard allowed but this. Ada supports runtime tests in order to identify and avoid memory overflows , access to unallocated memory, off-by-one errors and other similar errors at an early stage. These tests can be switched off for greater efficiency. Various language properties are also available for program verification . With Ada it was also possible for the first time to automatically check programs for correctness. The Ada variant SPARK is used for this. This is a subset of Ada with special annotations . The correctness of a SPARK program is checked with a verification program (SPARK Examiner) through static analysis of the annotations.
The open source compiler GNAT is available for Ada under a GP license . The company AdaCore develops the integrated development environment (IDE) GNAT Programming Studio , which is offered in a free and a commercial version. In addition, various well-known manufacturers offer compilers with IDEs for Ada. A plug-in for Eclipse , GNATbench , was initially distributed in the commercial version GNATpro, but is now also available under a GPL . There are also some smaller IDEs that support Ada and are particularly suitable for teaching, for example jGRASP , or the well-known AdaGIDE under Windows . There is also an emacs mode for Ada.
In the 1970s, the United States Department of Defense expressed concern about the growing number of programming languages being used in its projects. Maintenance , training , modularity and reuse were severely affected. Many of the programming languages were also proprietary (so you were dependent on the provider) or simply out of date. In 1975 a working group was supposed to clear this jungle and find or invent a language that met the requirements of the ministry. A number of catalogs of requirements, called Strawmann , Woodenman , Tinman , Ironman , Sandman (unpublished) and Steelman (later Pebbleman and Stoneman for an integrated development environment ), were created and many existing languages were checked, but the result was reached in 1977 that none of the existing languages was suitable. After a tender four candidates came into the closer selection ( Red , Green , Blue and Yellow called), and in May 1979 it was decided to Green by jean ichbiah , which was then given the name Ada. The original description was approved on December 10, 1980, the birthday of Lady Ada Lovelace . The standard was named MIL-STD 1815 because 1815 was her year of birth. The first implementation took place under Multics .
After Ada was introduced in 1983, the number of programming languages used in the area of responsibility of the US Department of Defense fell from 450 to 37 by 1996. The US Department of Defense stipulated that every software project with a share of more than 30% new code should be written in Ada had to. This requirement was repealed in 1997 and exceptions were often granted. Similar regulations have been issued in many other NATO countries . In 1983 the language became an ANSI standard (ANSI / MIL-STD 1815), the ISO adopted the standard in 1987 as ISO-8652: 1987. This version is known today as Ada 83, after the year of the ANSI standardization. Ada 95, the joint ISO / ANSI standard ISO-8652: 1995, was adopted in February 1995. This made Ada 95 the first object-oriented programming language with an ISO standard. In September 2000 the first technical correction according to the statutes of ISO was adopted as ISO / IEC 8652: 1995 (E) /Cor.1:2000. At present, the ISO / ANSI standard ISO-8652: 1995 / AMD 1: 2007, informally Ada 2005, is the current standard.
In order to support the dissemination of standards and the language in general, financed US Air Force development of the free GNAT - compiler . The security-oriented language properties of Ada alone cannot prevent errors: Ariane V88 , the first Ariane 5 , and its payload were lost in June 1996, among other things because an arithmetic overflow occurred and no appropriate exception handling was implemented for the exception generated by the compiler . Contrary to Bertrand Meyer's assertion, the Eiffel programming language he developed would not have prevented the missile from being lost. In April 2008, Ada hit the headlines again in 2005 after Lockheed Martin delivered an update to the Federal Aviation Administration's air traffic control system ahead of the agreed delivery time and below expected budget .
Hello world in Ada
The Hello World program in Ada:
with Ada.Text_IO; procedure Hallo is begin -- Ausgabe des Textes "Hallo, Welt!". Ada.Text_IO.Put_Line("Hallo, Welt!"); end Hallo;
- Manfred Nagl: Software technology with Ada 95 . Vieweg, ISBN 3-528-15583-3 .
- Harry Feldmann: Programming with Ada . Vieweg, ISBN 3-528-05205-8 .
- Annette Weinert: Programming with Ada and C . Vieweg, ISBN 3-528-05240-6 .
- Diana Schmidt: Successful programming with Ada . Springer Verlag, ISBN 3-540-57689-4 .
- Klaus P. Kratzer: ADA . Hanser reference book, ISBN 3-446-16545-2 .
- John Barnes: Programming in Ada 2012. , ISBN 978-1-107-42481-4 .
- Simon Johnston: Ada 95 for C and C ++ Programmers .
- NH Cohen: Ada as a Second language . - very detailed.
- A. Burns and A. Wellings: Concurrency in Ada .
- Nell Dale, Chip Weems & John W. McCormick: Programming and Problem Solving with Ada 95 (2nd edition), ISBN 978-0-7637-0792-7 .
- comp.lang.ada (newsgroup)
- A # - Ada for .NET / Mono
- Steelman On-Line
- Ada, C, C ++, and Java vs. The Steelman
- Modula-3 and Ada
- Ada lecture notes ( Memento of 28 September 2007 at the Internet Archive ) (PDF, 1.4 MB) Lecture notes with tasks solutions ( Memento of 28 September 2007 at the Internet Archive ) (PDF, 88 kB), sample programs ( Memento from the 28th September 2007 in the Internet Archive ) ( Beuth University of Applied Sciences Berlin , Prof. Dr. Grude; 1.30 MB; ZIP )
- Ada 95: The Craft of Object-Oriented Programming (PDF) online book by John English
- The Big Online Book of Linux Ada Programming online book by Ken O. Burtch
Reference and glossary
- Ada Reference Manual - free Ada 95 online reference
- Javier Miranda: A Detailed Description of the GNU Ada Run-Time . 2002
- www.adahome.com .
- blog.adacore.com .
- John Barnes: High integrity software: the spark approach to safety and security . Pearson Education, Boston, Mass. 2003, ISBN 0-321-13616-0 .
- Aonix ObjectAda - Product - Atego. (No longer available online.) In: atego.com. Archived from the original on August 6, 2013 ; accessed on October 17, 2011 (English).
- AdaMULTI IDE. In: ghs.com. Retrieved October 17, 2011 .
- DDC-I: Ada Compilers. In: adacompiler.com. Retrieved October 17, 2011 .
- IBM Software - Ada Developer Product Line. In: ibm.com. Retrieved October 17, 2011 .
- XD ADA. (No longer available online.) In: swep-eds.com. Archived from the original on May 9, 2014 ; accessed on October 17, 2011 (English).
- ISO standard ADA 2005. (No longer available online.) In: iso.org. Archived from the original on May 2, 2007 ; accessed on October 17, 2011 (English).
- Ken Garlington: Critique of "Put it in the contract: The lessons of Ariane". In: lore.ua.ac.be. August 7, 1997, accessed October 14, 2011 .
- Joab Jackson: The return of Ada. In: gcn.com. Retrieved October 17, 2011 .