Ada Programming Language Article Index for
Ada
Limousines in
Ada
Website Links For
Ada
 

Information About

Ada Programming Language




  Paradigm , Distributed , Generic-programming , Imperative , Object-oriented
  Year 1983, last revised 2005
  Designer Jean Ichbiah , extended<br>by S Tucker Taft
  Typing Static , Strong , Safe , Nominative
  implementations GNAT
  dialects Ada&nbsp83, Ada&nbsp95, Ada&nbsp2005
  Influenced By ALGOL 68 , Pascal , C++ &nbsp(Ada&nbsp95), Smalltalk &nbsp(Ada&nbsp95), Java &nbsp(Ada&nbsp2005)
  Influenced C++ , PL/SQL


Ada is a Structured , Statically Typed , Imperative , and Object-oriented High-level Computer Programming Language . It was originally designed by a team led by Jean Ichbiah of CII Honeywell Bull under contract to the United States Department Of Defense during 19771983 to supersede the hundreds of programming languages then used by the DOD. Ada addresses some of the same tasks as C or C++ , but Ada is Strongly-typed (even for integer-range), and compilers are validated for reliability in mission-critical applications, such as Avionics software. Ada was named after Ada Lovelace , who is often credited with being the first computer programmer.
Ada is an international standard; the current version (known as Ada 2005) is defined by joint ISO/ANSI standard ( ISO-8652:1995 ), combined with major Amendment
ISO/IEC 8652:1995/Amd 1:2007 .


FEATURES

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).

Notable features of Ada include: Strong Typing , Modularity Mechanisms (packages), Run-time Checking , Parallel Processing (tasks), Exception Handling , and Generic s. Ada 95 added support for Object-oriented Programming , including Dynamic Dispatch .

Ada supports run-time checks in order to protect against access to unallocated memory, Buffer Overflow errors, Off By One Errors , array access errors, and other avoidable bugs. These checks can be disabled in the interest of runtime efficiency, but can often be compiled efficiently. It also includes facilities to help program verification. For these reasons, Ada is widely used in critical systems, where any Anomaly might lead to very serious consequences, i.e., accidental death or injury. Examples of systems where Ada is used include Avionics , weapons (including Thermonuclear Weapons ), and spacecraft.

Ada also supports a large number of compile-time checks to help avoid bugs that would not be detectable until run-time in some other languages or would require explicit checks to be added to the source code.

Ada's dynamic Memory Management is high-level and type-explicit, requiring explicit instantiation of the Unchecked_Deallocation package to explicitly free allocated memory. The specification does not require any particular implementation. Though the semantics of the language allow automatic Garbage Collection of inaccessible objects, most implementations do not support it. Ada does support a limited form of Region-based Storage Management . Invalid accesses can always be detected at run time (unless of course the check is turned off) and sometimes at compile time.