Ada (programming language): Difference between revisions

Content deleted Content added
m remove arbitrary fixed sizes
Cikzh (talk | contribs)
m Added link to syntax
Line 37:
Features of Ada include: [[Strong and weak typing|strong typing]], [[modular programming]] mechanisms (packages), [[run-time checking]], [[Parallel computing|parallel processing]] ([[Task (computing)|tasks]], synchronous [[message passing]], protected objects, and nondeterministic [[Switch statement|select statements]]), [[exception handling]], and [[generic programming|generics]]. Ada 95 added support for [[object-oriented programming]], including [[dynamic dispatch]].
 
The [[Syntax (programming languages)|syntax]] of Ada minimizes choices of ways to perform basic operations, and prefers English keywords (such as "or else" and "and then") to symbols (such as "||" and "&&"). Ada uses the basic arithmetical operators "+", "-", "*", and "/", but avoids using other symbols. Code blocks are delimited by words such as "declare", "begin", and "end", where the "end" (in most cases) is followed by the identifier of the block it closes (e.g., ''if ... end if'', ''loop ... end loop''). In the case of conditional blocks this avoids a ''[[dangling else]]'' that could pair with the wrong nested if-expression in other languages like C or Java.
 
Ada is designed for developing very large software systems. Ada packages can be compiled separately. Ada package specifications (the package interface) can also be compiled separately without the implementation to check for consistency. This makes it possible to detect problems early during the design phase, before implementation starts.
Line 64:
HOLWG crafted the '''<span class="anchor" id="Steelman language requirements">Steelman language requirements</span>''' , a series of documents stating the requirements they felt a programming language should satisfy. Many existing languages were formally reviewed, but the team concluded in 1977 that no existing language met the specifications. The requirements were created by the [[United States Department of Defense]] in ''The Department of Defense Common High Order Language program'' in 1978. The predecessors of this document were called, in order, "Strawman", "Woodenman", "Tinman" and "Ironman".<ref>Department of Defense (June 1978), [https://web.archive.org/web/20200914235620/https://dwheeler.com/steelman/steelman.htm Requirements for High Order Computer Programming Languages: "Steelman"]</ref> The requirements focused on the needs of [[embedded systems|embedded]] computer applications, and emphasised reliability, maintainability, and efficiency. Notably, they included [[exception handling]] facilities, [[run-time checking]], and [[parallel computing]].
 
It was concluded that no existing language met these criteria to a sufficient extent,<ref>SoftTech Inc. (1976), [https[iarchive://archive.org/details/DTIC_ADA037637/mode/2up |"Evaluation of ALGOL 68, Jovial J3B, Pascal, SIMULA 67, and TACPOL Versus TINMAN - Requirements for a Common High Order Programming Language."]] - See also: [[ALGOL 68]], [[JOVIAL|Jovial]] J3B, [[Pascal (programming language)|Pascal]], [[SIMULA]] 67, and [[TACPOL]] (Defense Technical Information Center - DTIC ADA037637, Report Number 1021-14)</ref> so a contest was called to create a language that would be closer to fulfilling them. The design that won this contest became the Ada programming language. The resulting language followed the Steelman requirements closely, though not exactly.
 
[[File:Ada Lovelace portrait.jpg|thumb|225x225px|Watercolour painting of Ada Lovelace]]