The Ada Programming Language
What is Ada
Ada is a language originally designed to reduce the cost of writing
embedded systems for USA Department of Defense projects. The 1983
version of the language (Ada83): incorporated much of the accepted
wisdom on software engineering of the time:
- Data Structures - Pascal/C like but safer:
- Arrays have bounds before use and bounds are available and checked
- Pointers are under control
- Unions are tagged
- Type conversions are explicit
- Can be encapsulated by an abstract description
- Modularization
- Separate compilation
- Inter-module type checking
- Information hiding/encapsulation/abstraction
- Cooperative parallel processes(tasks),
- Exceptions,
- Generics/templates replacing Macros
- Least error prone syntax(based on experimental data)
The name was protected
so that a company could only call their product "Ada" if it passed
a large set of tests. In this version there was hardly any support
for inheritance, mathematical and scientific programming, commercial
programming, System programming. However it did contain some unique
features for real time work including: tasking, exceptions, delays,...
It has been criticised for being
- Too Complex to be safe(Hoare)
- Too Verbose (Any C programmer)
- Not Object Oriented (Any C++/Smalltalk programmer)
- Mandated (Most conservatives and/or democrats)
The new standard was released in Spring 1995 (Ada95):
The designers claim that Ada95 does address the concerns
of the object-oriented, commercial, scientific, and system programming
experts. They also added a neat way to efficiently and safely share data
between parallel tasks(inheritance). Time will tell...
Glossary for Ada83
[ada.glossary.html]
Syntax for Ada83
[ada.syntax.html]
Information on Ada95
[ada95.html]
Other Local documentation
[Ada.AIX]
, . . .
[Ada.bnf]
, . . .
[ada.FAQ]
, . . .
[ada.pal.FAQ]
Ada on the WWW
The Lovelace
[lovelace.html]
Tutorial.
The Cal Poly Pomona programming exercises:
[Modules.html]
Special Interst Group: SIGADA of ACM
[http://lglwww.epfl.ch/Ada/ or http://info.acm.org/sigada/]
An internet browser of the Ada 95 Package Library:
[Browser.html]
Frequently Asked Questions
- FAQ::=Frequently Asked Questions.
The Ada FAQ has a home on the Home of the Brave Ada Programmers
(HBAP) WWW Server, in hypertext format, URL
[comp-lang-ada.html]
It is available --as posted in *.answers-- on rtfm.mit.edu, which
archives all FAQ files posted to *.answers; see directory
[Ada]
The text-only version is also available in directory
[FAQ]
All FAQs can be found via
FAQ[info4]
Most memorable bug(s)?
A doctoral student of Mike Feldman, Charles Kann (ckann@seas.gwu.edu), author
of much of the GW-Ada/Ed stuff, is investigating Ada debugging techniques
as part of his dissertation project.
As part of that effort, he and I would much appreciate your jotting down
brief descriptions of your most memorable bugs in Ada. Chuck tried
posting this to comp.lang.ada a while ago but got VERY few responses.
We need more. Can you help?
Please do your bit for science!:-)
Reply by e-mail to:
- mfeldman@seas.gwu.edu (Internet)
- Michael B. Feldman - chair, SIGAda Education Working Group
- Professor, Dept. of Electrical Engineering and Computer Science
- The George Washington University - Washington, DC 20052 USA
- 202-994-5919 (voice) - 202-994-0227 (fax)