Upload
ashlie-hill
View
215
Download
0
Tags:
Embed Size (px)
Citation preview
Ada, the Language of Kings
Paradigm PresentationShane Nelson and Rogan Magee
10/05/2011
History: Before 1983...• Before 1983, the US Military used
over 2000 domain specific languages, some obsolete and/or error prone, in embedded systems.
• The Department of Defense established the Higher Order Working Language Group in 1975 to research a modular, general purpose language.
• In 1978, they established the Steelman Language Requirements (mainly reliability, maintainability, and efficiency) to judge potential languages.
• No existing language was adequate. So they hosted a competition...
Inertial Guidance(Thor IRBM)
Temperature Control in Nuclear Submarines(USS Nautilus)
GPS in Avionics (Boeing 747-230B)
History: The Competition
Benjamin Brosgol(Intermetrics)-Cambridge, MA: Veterans of MIT's Instrumentation Lab-(Q Guidance Systems)
Jean Ichbiah(CII Honeywell Bull)-Paris, France: Design Computers-(Micral)
John Goodenough(SofTech)-Lowell, MABehind Computer Aided Design (CAD) Systems
Jay Spitzen(SRI International)-Menlo Park, CAGeneral Science Research (Packet Switched Radio, Software Fault-Tolerance)
The Semifinalists
The Organizers (HWOLG)
Started in 1977: accepted 17 proposals. Judged by the HOWLG under Col. William A. Whitaker.
Lt. Col. Whilliam A. Whitaker USAF – (chairman)
David Fisher, Secretary
Cmdr. Jack Cooper (with Bernie ZempolichAnd Robert Kahane)Navy Representative(s)
Bill Carson, ARPA Rep.
Maj. Tom Jarrell, USAF
Paul Cohen, DCA
Lt. Col. Schamber, Marine Corps.
Maj. Breault, Army
History: What about that name?• After declaring Green the
winners, they sorted through many names and settled on Dod-1.
• Jack Cooper thought the name's “military overtones” would discourage non-military users, so he proposed Ada.
• Named after Ada Augusta King, Countess of Lovelace (1815-1852)
• Daughter of Lord Byron, incredibly gifted and eccentric mathematician.
• Worked on documentation for Charles Babbage's Analytical Engine
• Wrote “first program” ever – counting algorithm for machine
Trial model of the Analytical Engine
The Countess Jacquard Loom (punch cards)
History: Immediate Apps. - 1983
• Ada's final review and formation finished in 1983 – with the publication of MIL-STD-1815A, after which it was used almost immediately in many military, commercial, and industrial systems.
-Ada used in French rail systems (TGV), “The train that saved French railways”, SNCF pres. Louis Gallois -Ada used in West Virginian hot
steel rolling mills
Language Details: Data StructuresAda is...
Strongly typed:Ada does not allow for cross-type operations...Care must be taken when dealing with types.
Types are: 1. static – checked at
compile time*, • strong – incompatible
with each other, • equivalent by name –
not by implementation at bit level (an integer is an integer),
• (can be) abstract – "tagged type intended for use as an ancestor of other types, but which is not allowed to have objects of its own" (user has control)
Predefined Types: Integer, Float, Duration, Character, String, Boolean, System.Address, System.Storage_Elements (address arithmetic and memory management)
Language Details: GenericsGenerics:Ada allows for user defined types and functions of unknown type - generics. The user can either build a new type from existing types or develop one entirely his own. Adaoffers low level control like C++.
Language Details: Unique Data Structure
• Packages: "program units that allow the specification of groups of logically related entities. Typically, a package contains the declaration of a type (often a private type or private extension) along with the declaration of primitive subprograms of the type, which can be called from outside the package, while their inner workings remain hidden from outside users".
Language Details: Control Structures
• Procedure – (like a C++ void function) statement which doesn't return
• Function – block of code which does return• If-Else – Both if and if-else• Case – compares one specific to another• Loops – Both for, while, and varied(see below)• Goto and Returns – transfers control after
label(goto)
Example Program