Chapter 3. Language-Related Issues

Table of Contents
3.1. Overview
3.2. Section 2: Lexical Elements
3.3. Section 3: Declarations and Types
3.4. Section 4: Names and Expressions
3.5. Section 5: Statements
3.6. Section 6: Subprograms
3.7. Section 7: Packages
3.8. Section 8: Visibility Rules
3.9. Section 9: Tasks and Synchronization
3.10. Section 10: Program Structure and Compilation Issues
3.11. Section 11: Exceptions
3.12. Section 12: Generic Units
3.13. Section 13: Representation Issues
3.14. Input-Output
3.15. Annex A: Predefined Language Environment
3.16. Annex B: Interface to Other Languages
3.17. Annex C: Systems Programming
3.18. Annex D: Real-Time Systems
3.19. Annex E: Distributed Systems
3.20. Annex F: Information Systems
3.21. Annex G: Numerics
3.22. Annex H: Safety and Security
3.23. Annex J: Obsolescent Features
3.24. Annex K: Language-Defined Attributes
3.25. Annex L: Language-Defined Pragmas

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.

3.1. Overview

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.

Language features that are always restricted are 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 never used.

The gain in efficiency is evident in the performance figures, which are an order of magnitude smaller and faster than competing compilation systems that support the full language.

The following list gives language features that are prohibited. The references to sections in this list apply to the Ada 95 Reference Manual. Further details appear in the respective section below:

FeatureAda RM Section
Partitions of Distributed SystemsAnnex E
Exception propagationSections 3.1 and 11
Finalization in packagesSection 7.6
Some predefined packagesAnnex A
StreamsSection 13
Class-wide operations with tagged typesSection 3.9