The Ada 95 Reference Manual, ANSI/ISO/IEC-8652:1995, explicitly allows variations between Ada processors in a number of aspects. This chapter describes the language supported by ERC32 Ada and is organized according to the appropriate chapters and annexes of the Ada Manual.
ERC32 Ada supports several restricted Ada 95 profiles that prohibit the use of unsafe language features, and which are compatible with the requirements for high-integrity software applications.
With the use of implementation-defined restrictions, ERC32 Ada offers three restricted profiles as follows:
Minimal run-time system (for safety-critical applications)
Restricted run-time system
Ravenscar (which includes a limited form of tasking)
Language features that are always restricted as not supported at all. This means that the compiler and run-time system can be optimized for the safe subsets and unlike unrestricted compilers, need not be hindered by the need to support complex and inefficient features that are not going to be used.
The gain in efficiency is evident in the performance figures, which in the majority of cases are an order of magnitude smaller and faster than competing compilation systems.
The following list gives language features that are always prohibited. The references to sections in this list apply to the Ada 95 Reference Manual. Further details appear in the respective section below:
Allocators (See RM Section 4.8)
Certain Attributes (See RM Sections 3.5, 3.6, 3.7, 3.9, 3.10, Annex K)
Partitions of Distributed Systems (See RM Annex E)
Exception Handlers (See RM Sections 3.1 and 11)
Finalization in packages (See RM Section 7.6)
Certain Operators (See RM Section 4.5)
Some predefined packages (See RM Annex A)
Recursion (See RM Annex H.4)
Certain Representation clauses (See RM Sections 13.3, 13.4)
Streams (See RM Section 13)
Tagged types (See RM Section 3.9)
Functions that return unconstrained types (See RM Section 3.2)