Ada is a structured, statically typed, imperative, wide-spectrum, multi-paradigm, object-oriented high-level, ALGOL-like programming language, extended from Pascal and other languages. The language was developed in the late 1970s and early 1980s. Ada is named after Augusta Ada Byron (often now known as Ada Lovelace), daughter of the poet Lord Byron.
Ada has built-in language support for explicit concurrency, offering tasks, synchronous message passing, protected objects, and non-determinism. Ada incorporates the benefits of object-oriented languages without incurring the pervasive overheads.
Other notable features of Ada include: strong typing, inherent reliability, modularity mechanisms (packages), run-time checking, parallel processing, exception handling, the ability to provide abstraction through the package and private type, and generics.
Ada is particularly strong in areas such as real-time applications, low-level hardware access, and safety-critical software, as it has specialized design features, and high reliability. Most errors are detected at compile time and of those remaining many are detected by runtime constraints. While Ada was originally targeted at embedded and real time systems, the Ada 95 revision added support for object-oriented (including dynamic dispatch), numerical, financial, and systems programming. With its readability, scalability, and being designed for development of very large software systems, Ada is a good choice for open source development.
We publish a series covering the best open source programming books for other popular languages. Read them here.
By John English (486 pages)
Ada 95: The Craft of Object-Oriented Programming is an introduction to Ada 95. It uses an example-driven approach which gradually develops small trivial programs into large case-study type programs.
The main focus of this book is on maintenance problems, and using object-oriented technology to write maintainable, extensible programs. Program design is introduced throughout the book, with hypothetical maintenance scenarios used to show design shortcomings, and revise them to accommodate maintenance needs. Practical issues such as debugging programs are tackled, and important Ada features not found in other languages are dealt with practically and early on in the text. Each chapter ends with useful exercises.
Abstract Data Types
Designing extensible software
Permission is given to redistribute this work for non-profit educational use only.
By David A. Wheeler (293 pages)
Ada 95: The Lovelace Tutorial is an introduction to Ada 95. The book explains the basics of the Ada computer programming language and assumes that the reader has had some exposure to another algorithmic programming language (such as Pascal, C, C++, Fortran, or BASIC).
Lovelace is interactive and contains many short sections, most of which end with a question to help ensure the reader understands the material. Object-oriented facilities of Ada are covered in depth, and the essential features of Ada programming are given thorough treatment.
The electronic version of the Lovelace tutorial is released under the terms of the GNU General Public License (GPL).
By Do-While Jones (153 pages)
Ada in Action explores many selected advanced features and constructs of ADA and explains how to use them for the best results. It provides examples of how to write clear, correct, maintenance code and gives the reader re-usable components that can be used without modification in their own programs.
The book shows the reader to apply good software engineering principles and techniques to ADA programs through tested and proven methods. The text will be of benefit to military software and commercial software engineers and programmers, educational institutions and ADA programmers.
The book is released under an open source license.
By John Barnes (466 pages)
Ada 95 Rationale: The Language – The Standard Libraries describes the rationale for Ada 95, the revised International Standard. It introduces Ada 95 and its powerful new mechanisms, and explains the rationale behind them.
The first part is an Introduction to Ada 95; it presents a general discussion of the scope and objectives of Ada 95 and its major technical features. The second part contains a more detailed chapter by chapter account of the Core language. The third part covers the various Annexes which address the predefined environment and the needs of specialized application areas.
The Core Language
This package may be freely copied and distributed, if accompanied by a statement, and provided that integral copies of all files are included (i.e. no change whatsoever is allowed).
By S. Tucker Taft, Robert A. Duff (533 pages)
This Ada 95 Reference Manual is essentially identical to the new International Standard ISO/IEC 8652:1995(E) for the Ada programming language.
The thorough technical revisions and extensions documented in this manual are built on broad participation from the international Ada community and generous support by leading institutions. Over 750 submitted revision requests were evaluated, and the resulting enhancements make Ada 95 an outstanding language. The flexibility of languages such as C++, modern features such as object orientation, and improved interfacing capabilities have been added to the reliable software engineering capabilities provided and proven for over a decade by the predecessor version Ada 83; furthermore, upward compatibility from Ada 83 to Ada 95 has been achieved.
The whole package (wrapped in a compressed “tarfile” or “zip file”) may be freely copied and distributed, if accompanied by this statement, and provided that integral copies of all files are included (i.e. no change whatsoever is allowed).
By Wikibooks (HTML)
This book is an Ada tutorial covering the Ada 2005 and 2012 standards. If you’re a beginner you will learn the latest standard — if you are a seasoned Ada user you can see what’s new.
This book is intended for professional readers.
Text is available under the Creative Commons Attribution-ShareAlike License.