AdaPower Logged in as Guest
Ada Tools and Resources

Ada 95 Reference Manual
Ada Source Code Treasury
Bindings and Packages
Ada FAQ


Join >
Articles >
Ada FAQ >
Getting Started >
Home >
Books & Tutorials >
Source Treasury >
Packages for Reuse >
Latest Additions >
Ada Projects >
Press Releases >
Ada Audio / Video >
Home Pages >
Links >
Contact >
About >
Login >
Back
Ada - A Capsule Rationale (Richard Riehle)

Ada is a software development environment, including a programming language, with the goal of maximizing the amount of error detection possible as early in the development process as possible. The default of every software construct in Ada is safe. In most other languages, the default is unsafe. One can relax the safe default in Ada as necessary. It is difficult to promote a language with default of unsafe to safe. The error detection process can begin at the specification stage when Ada is used as a PDL. It continues through every other stage of a software engineering project because the compiler keeps track of the relationships between every associated entity in the product. This checking can even extend to the real-time and concurrent facets of a software design because tasking is built-in to the language. This permits the compiler to do consistency checking at every level of even the largest and most complicated of Ada programs.

In addition to maximizing error detection through the compiler, Ada emphasizes understanding and expressiveness. The solution to nearly any programming problem can be expressed in any programming language. We call that expressibility. More important is the ease of expressing that solution. We call that expressiveness. In many cases, programming languages are designed to express solutions in a targeted problem domain. Ada's syntax, structure, and semantic model facilitates the design of software components that directly express the needs of any given software application domain. At the same time, Ada allows the developer to easily place restrictions on a design to avoid features inappropriate in the solution of a given application problem.


(c) 1998-2004 All Rights Reserved David Botton