All true Ada compilers are required to implement the ``core Ada language''. The core of the Ada language is defined in the sections (1 through 13) and three of the document's annexes:
Here are the thirteen sections of the RM, with a simplified description of what is in each section:
Ada compilers may also include features needed by certain application areas, which are defined in some of the other annexes. These are called the "specialized needs annexes", and are defined in annexes C through H. For example, annex G defines additional requirements and support packages for numerical work, and annex H defines additional support for safety and security. A given Ada compiler may support none or a selected set of these annexes.
Both the index and the table of contents may help you find a specific issue you're trying to find out about. Annex N is the glossary, which may help you understand a specific term used in the RM.
RM references are usually given in the form of the section number followed by the paragraph number, with the paragraph number in parentheses. Thus, if a compiler error message or someone's post to a newsgroup references RM 7.1(3), they are referring to the third paragraph in section 7.1 (which gives the syntax for a package specification).
Is the RM an easy document to read at first? No, not for most people; it's a lot like reading a legal document. However, it gets easier to do over time, and it's a useful skill. Once you are able to look up things in the RM, you'll be able to answer authoritatively many Ada-related questions.
Magnus Kempe has developed a hypertext version of the Ada RM. It includes three ``zoom levels'' of the table of contents that you may find very useful.
What section would give more information about protected objects?
![]() |
![]() |
![]() |
---|
David A. Wheeler (dwheeler@ida.org)
The master copy of this file is at "http://www.adahome.com/Tutorials/Lovelace/s14s2.htm".