Ada 2012 Language Rationale Published
New educational resource by Ada expert John Barnes explains key Ada 2012 concepts
PITTSBURGH, Pa., November 12, 2013 – Today at ACM SIGAda’s HILT 2013 (High Integrity Language Technology) Conference, the Ada Resource Association (ARA) and Ada-Europe announced the publication of the Ada 2012 Rationale and its free availability for downloading. Sponsored in part by Ada-Europe, the Ada Resource Association, and AdaCore, the Ada 2012 Rationale was written by longtime Ada authority John Barnes. It summarizes the new Ada 2012 features, shows examples of their use, describes compatibility with earlier versions of the language standard, and explains the reasons behind critical language design decisions. This new Rationale will be a valuable resource for anyone interested in learning the innovations introduced by the Ada 2012 standard.
The Rationale may be downloaded at no cost from www.adaresource.com/rationale-2012/, from www.ada-europe.org/resources/online/, and from www.adacore.com/rationale-2012/. The book may also be purchased through its commercial publisher, Springer, as volume LNCS 8338 in their Lecture Notes in Computer Science series, to be released in mid-December 2013.
The Ada 2012 Rationale contains the following chapters:
- Introduction, covering the development of Ada 2012 and giving a brief overview of the main changes from Ada 2005.
- Contracts and Aspects, describing the contract mechanism, one of the major enhancements in Ada 2012. It explains subprogram preconditions and postconditions, type invariants, and subtype predicates, and also presents the new unifying concept of “aspects”.
- Expressions, describing the new flexible forms of expressions introduced in Ada 2012. These new forms – conditional expressions, quantified expressions, and expression functions – are especially useful in conjunction with contracts.
- Structure and Visibility, describing various improvements including the generalization of parameter modes to functions, additional flexibility with incomplete types, and new forms for “use” clauses and return statements.
- Tasking and Real-Time, describing various enhancements including control over task allocation on multiprocessor architectures, improvements to the scheduling mechanisms, and control of budgets with regard to interrupts.
- Iterators, Pools, etc., describing various improvements in a number of general areas in Ada 2012. These include important new features regarding indexing and accessing that simplify iterating over containers, and a subpool facility for additional flexibility in storage management.
- Predefined Library, describing a variety of minor improvements in areas including string and character handling, directory processing, locale, and streams.
- Containers, describing enhancements to the Containers library, including a new facility for bounded containers that does not require dynamic storage management, more elegant mechanisms for element access and iteration, support for multiway trees, a more general sorting facility, and queues that can be manipulated in a well-defined fashion by multiple tasks.
“John Barnes has the rare ability to take complex material, distill it down to its essence, and explain it in an understandable and often entertaining manner,” said Ben Brosgol, ARA President. “Ada 2012 has advanced the state of the art in language design, and the new Rationale will help developers understand and appreciate the language’s innovations.”
“To encourage Ada 2012’s adoption, educational material needs to be widely and easily accessible,” said Tullio Vardanega, Ada-Europe President. “The Ada 2012 Rationale is an excellent training resource, and we hope that both students and professional developers will take advantage of its free availability.”
The Ada programming language was designed for high-integrity systems – critical applications where reliability is essential and where compliance with safety and/or security standards may be required. Its compile-time and run-time checks help detect errors early in the software development life cycle, avoiding vulnerabilities such as buffer overflow that are prevalent in other languages. Ada is an international (ISO) standard, with the latest version (Ada 2012) introducing direct support for contract-based programming among other new features. Ada continues to see a growing usage in safety-certified applications, including commercial aircraft avionics, military systems, air traffic management/control, railroad systems, and medical devices, and in security-sensitive domains such as financial services.
About the Ada Resource Association
The Ada Resource Association (ARA) is a non-profit organization chartered to support the continued evolution of the Ada language and its infrastructure, to serve as a source of information about Ada and its usage, and to promote Ada as a language for effective software engineering. To these ends the ARA maintains the Ada Information Clearinghouse website www.adaic.org and has provided funding for the development and maintenance of the Ada language standard and the Ada Conformance Assessment Test Suite. For information about the ARA, including sponsorship opportunities, please visit www.adaresource.com. The ARA is headquartered in Oakton, VA (US).
Ada-Europe is the international non-profit organization that promotes the knowledge and use of the Ada programming language in academia, research and industry in Europe. Its flagship event is the annual international conference on reliable software technologies, a high-quality technical and scientific event that has been successfully running in the current format since 1996. Ada-Europe has member organizations all over the continent, in Belgium, Denmark, France, Germany, Spain, Sweden, and Switzerland, as well as individual members in many other countries. For information about Ada-Europe, its charter, activities and sponsors, please visit: www.ada-europe.org. Ada-Europe is headquartered in Brussels, Belgium.
Ada Resource Association
Ben Brosgol, ARA President
Tullio Vardanega, Ada-Europe President
Dirk Craeynest, Ada-Europe Vice-president
c/o KU Leuven, Department of Computer Science