Ada (programming language): Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Altered template type. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox2 | #UCB_webform_linked 12/467
Line 61:
In the 1970s the [[United States Department of Defense|US Department of Defense]] (DoD) became concerned by the number of different programming languages being used for its embedded computer system projects, many of which were obsolete or hardware-dependent, and none of which supported safe modular programming. In 1975, a [[working group]], the [[High Order Language Working Group]] (HOLWG), was formed with the intent to reduce this number by finding or creating a programming language generally suitable for the department's and the [[Ministry of Defence (United Kingdom)|UK Ministry of Defence]]'s requirements. After many iterations beginning with an original [[Straw man proposal|straw-man proposal]]<ref>{{Cite web|url=http://iment.com/maida/computer/requirements/strawman.htm|title=DoD – Strawman Requirements – April 1975|website=iment.com|accessdate=Apr 4, 2023}}</ref> the eventual programming language was named Ada. The total number of high-level programming languages in use for such projects fell from over 450 in 1983 to 37 by 1996.
 
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://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)|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]]
Requests for proposals for a new programming language were issued and four contractors were hired to develop their proposals under the names of Red ([[Intermetrics]] led by Benjamin Brosgol), Green ([[Honeywell]], led by [[Jean Ichbiah]]), Blue ([[SofTech, Inc.|SofTech]], led by John Goodenough)<ref>{{cite web|url=http://www.sei.cmu.edu/about/people/jbg.cfm |title=John Goodenough &#124; SEI Staff Profile |publisher=Sei.cmu.edu |access-date=2014-01-27}}</ref> and Yellow ([[SRI International]], led by Jay Spitzen).<!-- Though Intermetrics and Bull have previous links, I am including them for parallelism. --> In April 1978, after public scrutiny, the Red and Green proposals passed to the next phase. In May 1979, the Green proposal, designed by Jean Ichbiah at Honeywell, was chosen and given the name Ada—after Augusta Ada King, Countess of Lovelace, usually known as [[Ada Lovelace]]. This proposal was influenced by the language [[LIS (programming language)|LIS]] that Ichbiah and his group had developed in the 1970s. The preliminary Ada reference manual was published in ACM SIGPLAN Notices in June 1979. The Military Standard reference manual was approved on December 10, 1980 (Ada Lovelace's birthday), and given the number MIL-STD-1815 in honor of Ada Lovelace's birth year. In 1981, [[Tony Hoare]] took advantage of his [[Turing Award]] speech to criticize Ada for being overly complex and hence unreliable,<ref>{{cite journal |last=C.A.R. |first=Hoare |author-link=Tony Hoare |date=1981 |title=The Emperor's Old Clothes |url=http://zoo.cs.yale.edu/classes/cs422/2011/bib/hoare81emperor.pdf |url-status=live |journal=Communications of the ACM |publisher=[[Association for Computing Machinery]] |volume=24 |issue=2 |pages=75–83 |doi=10.1145/358549.358561 |s2cid=97895 |archive-url=https://web.archive.org/web/20160304012013/http://zoo.cs.yale.edu/classes/cs422/2011/bib/hoare81emperor.pdf |archive-date=2016-03-04 |doi-access=free}}</ref> but subsequently seemed to recant in the foreword he wrote for an Ada textbook.<ref>{{cite book |last1=Watt |first1=D.A. |last2=Wichmann |first2=B.A. |last3=Findlay |first3=W. |title=Ada: Language and Methodology |publisher=Prentice-Hall |date=1987}}</ref>
Line 76 ⟶ 79:
For example, the [[Primary Flight Control System]], the [[Aircraft flight control systems|fly-by-wire]] system software in the [[Boeing 777]], was written in Ada, as were the fly-by-wire systems for the aerodynamically unstable [[Eurofighter Typhoon]],<ref>{{cite web |date=16 June 1999 |title=Agile thinking |url=https://www.flightglobal.com/agile-thinking/26933.article |url-status=live |archive-url=https://web.archive.org/web/20210415054346/https://www.flightglobal.com/agile-thinking/26933.article |archive-date=15 April 2021 |access-date=13 Feb 2024 |website=FlightGlobal}}</ref> [[Saab JAS 39 Gripen|Saab Gripen]],<ref>{{Cite web |last=Frisberg |first=Bo |title=Usage of Ada in the Gripen Flight Control System |url=https://www.sigada.org/conf/sa98/papers/frisberg.pdf |url-status=live |archive-url=https://web.archive.org/web/20240115002036/https://www.sigada.org/conf/sa98/papers/frisberg.pdf |archive-date=15 Jan 2024 |access-date=13 Feb 2024 |website=The Special Interest Group on Ada}}</ref> [[Lockheed Martin F-22 Raptor]] and the DFCS replacement flight control system for the [[Grumman F-14 Tomcat]]. The Canadian Automated Air Traffic System was written in 1 million lines of Ada ([[Source lines of code|SLOC]] count). It featured advanced [[distributed processing]], a distributed Ada database, and object-oriented design. Ada is also used in other air traffic systems, e.g., the UK's next-generation Interim Future Area Control Tools Support ({{proper name|iFACTS}}) air traffic control system is designed and implemented using [[SPARK (programming language)|SPARK]] Ada.<ref>{{cite web|last=AdaCore|title=GNAT Pro Chosen for UK's Next Generation ATC System|url=http://www.adacore.com/2007/06/19/adacore-gnat-pro-chosen-for-uk-next-generation/|access-date=2011-03-01|archive-url=https://web.archive.org/web/20101224163518/http://www.adacore.com/2007/06/19/adacore-gnat-pro-chosen-for-uk-next-generation/|archive-date=2010-12-24|url-status=dead}}</ref>
It is also used in the [[France|French]] [[Transmission Voie-Machine|TVM]] in-[[cab signalling]] system on the [[TGV]] high-speed rail system, and the metro suburban trains in Paris, London, Hong Kong and New York City.<ref name="Ada_usage" /><ref>{{cite web|last=AdaCore|title=Look Who's Using Ada|url=http://www.adacore.com/home/ada_answers/lookwho/|access-date=2011-03-01|archive-url=https://web.archive.org/web/20101224102110/http://www.adacore.com/home/ada_answers/lookwho|archive-date=2010-12-24|url-status=dead}}</ref>
 
The Ada 95 revision of the language went beyond the Steelman requirements, targeting general-purpose systems in addition to embedded ones, and adding features supporting [[object-oriented programming]].<ref>David A. Wheeler (1997), [https://web.archive.org/web/20200914235617/https://dwheeler.com/steelman/steeltab.htm "Ada, C, C++, and Java vs. The Steelman"]. Originally published in ''Ada Letters'' July/August 1997</ref>
 
=== See also ===
* [[ALGOL 68]]
* [[Pascal (programming language)|Pascal]]
* [[Smalltalk]]
* [[Ada (programming language)|Ada]]
 
=== External links ===
{{Wikisource|Steelman language requirements}}
* 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"]
* David A. Wheeler (1996), [https://web.archive.org/web/20200915104558/https://dwheeler.com/steelman/ Introduction to Steelman On-Line] (Version 1.2).
* SoftTech Inc. (1976), [https://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).
* David A. Wheeler (1997), [https://web.archive.org/web/20200914235617/https://dwheeler.com/steelman/steeltab.htm "Ada, C, C++, and Java vs. The Steelman"]. Originally published in ''Ada Letters'' July/August 1997.
 
== Standardization ==