Paradigm | Multi-paradigm |
---|---|
Designed by |
|
First appeared | February 1980 |
Stable release |
Ada 2012 TC1 / February 1, 2016
|
Preview release |
Ada 2012 TC1 / April 2015
|
Typing discipline | static, strong, safe, nominative |
OS | Cross-platform (multi-platform) |
Filename extensions | .adb .ads |
Website | www |
Major implementations | |
AdaCore GNAT (free download: http://libre.adacore.com/download), Green Hills Software Optimising Ada 95 compiler, PTC, Inc. PTC ApexAda and PTC ObjectAda , DDC-I Score |
|
Dialects | |
SPARK, Ravenscar profile | |
Influenced by | |
ALGOL 68, Pascal, C++ (Ada 95), Smalltalk (Ada 95), Java (Ada 2005), Eiffel (Ada 2012) | |
Influenced | |
C++, Chapel,Eiffel, Java, Nim, PL/SQL, PL/pgSQL, Ruby, Rust,Seed7, SQL/PSM, VHDL | |
|
Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages. It has built-in language support for design-by-contract, extremely strong typing, explicit concurrency, offering tasks, synchronous message passing, protected objects, and non-determinism. Ada improves code safety and maintainability by using the compiler to find errors in favor of runtime errors. Ada is an international standard; the current version (known as Ada 2012) is defined by ISO/IEC 8652:2012.
Ada was originally designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department of Defense (DoD) from 1977 to 1983 to supersede over 450 programming languages used by the DoD at that time. Ada was named after Ada Lovelace (1815–1852), who is credited with being the first computer programmer.
Ada was originally targeted at embedded and real-time systems. The Ada 95 revision, designed by S. Tucker Taft of Intermetrics between 1992 and 1995, improved support for systems, numerical, financial, and object-oriented programming (OOP).
Features of Ada include: strong typing, modularity mechanisms (packages), run-time checking, parallel processing (tasks, synchronous message passing, protected objects, and nondeterministic select statements), exception handling, and generics. Ada 95 added support for object-oriented programming, including dynamic dispatch.