Appendix Z. Requirements - Ada 95 Rationale
This appendix lists the various requirements and study topics discussed in the Requirements document [DoD 90] and generally indicates how they have been met (by refererence to other parts of this rationale) or else notes why they proved to be inappropriate.
The requirements are listed here in exactly the order of the requirements document; against each requirement is a list of the one or more Requirement Summary sections of this rationale containing an indication of how the requirement has been met.
Note that a detailed analysis of how the requirements themselves relate back to the original Revision Requests is contained in the Requirements Rationale [DoD 91].
R2.1-A(1) - Incorporate Approved Commentaries 1.5 R2.1-A(2) - Review Other Presentation Suggestions 1.5 R2.1-B(1) - Maintain Format of Existing Standard 1.5 R2.1-C(1) - Machine-Readable Version of the Standard 1.5 R2.2-A(1) - Reduce Deterrents to Efficiency 3.11, 8.5, 9.8 R2.2-B(1) - Understandability 1.5, 3.11, 8.5 R2.2-C(1) - Minimize Special-Case Restrictions6.4, 8.5, 11.5 S2.3-A(1) - Improve Early Detection of Errors 1.5, 3.11 R2.3-A(2) - Limit Consequences of Erroneous Executions 1.5 R2.4-A(1) - Minimize Implementation Dependencies 3.11
R3.1-A(1) - Base Character Set 3.11 R3.1-A(2) - Extended Graphic Literals 3.11 R3.1-A(3) - Extended Character Set Support 3.11 R3.1-A(4) - Extended Comment Syntax 2.4 S3.1-A(5) - Extended Identifier Syntax 2.4
S4.1-A(1) - Subprograms as Objects 3.11, 4.8 R4.1-B(1) - Passing Subprograms as Parameters 3.11 R4.1-B(2) - Pragma INTERFACE 3.11, B.5 R4.2-A(1) - Allocation and Reclamation of Storage 13.7 S4.2-A(2) - Preservation of Abstraction 7.5 S4.3-A(1) - Reducing the Need for Recompilation 4.8, 10.6 S4.3-B(1) - Programming by Specialization/Extension4.8, 10.6 S4.3-C(1) - Enhanced Library Support 10.6 S4.4-A(1) - Generic Formal Parameters 12.8 R4.4-B(1) - Dependence of Instantiations on Bodies 12.8 S4.4-B(2) - Tighten the "Contract Model" 12.8 R4.4-C(1) - Generic Code Sharing 12.8 R4.5-A(1) - Accessing an Exception Name 11.5 R4.6-A(1) - Interactive TEXT_IO A.6 R4.6-B(1) - Additional Input/Output Functions A.6
R5.1-A(1) - Elapsed Time Measurement 9.8, D.13 R5.1-B(1) - Precise Periodic Execution 9.8, D.13 R5.1-C(1) - Detection of Missed Deadlines 9.8 R5.2-A(1) - Alternative Scheduling Algorithms 9.8, D.13 R5.2-A(2) - Common Real-time Paradigms 9.8 R5.3-A(1) - Asynchronous Transfer of Control 9.8 R5.4-A(1) - Non-Blocking Communication 9.8 S5.4-B(1) - Asynchronous Multicast 9.8
R6.1-A(1) - Unsigned Integer Operations 3.11 R6.2-A(1) - Data Interoperability 13.7 R6.3-A(1) - Interrupt Servicing 9.8, C.7 R6.3-A(2) - Interrupt Binding 9.8, C.7 R6.4-A(1) - Access Values Designating Global Objects 3.11 S6.4-B(1) - Low-Level Pointer Operations 3.11, 13.7
R7.1-A(1) - Control of Shared Memory C.7 S7.2-A(1) - Managing Large Numbers of Tasks 9.8 S7.3-A(1) - Statement Level Parallelism 9.8 S7.4-A(1) - Configuration of Parallel Programs 9.8
No specific standard constructs for vector (SIMD) machines have been introduced; however the rules regarding exceptions have been changed so that vendors are able to provide optimizations through pragmas as discussed in 9.8.
R8.1-A(1) - Facilitating Software Distribution 10.6, E.8 R8.2-A(1) - Dynamic Reconfiguration 10.6, E.8
Safety-Critical and Trusted
S9.1-A(1) - Determining Implementation Choices H.6 R9.1-A(2) - Ensuring Canonical Application of Operations H.6 R9.2-A(1) - Generating Easily Checked Code H.6 R9.3-A(1) - Allow Additional Compile-Time Restrictions H.6
R10.1-A(1) - Decimal-Based Types 3.11, F.3 S10.1-A(2) - Specification of Decimal Representation F.3 S10.2-A(1) - Alternate Character Set Support F.3 S10.3-A(1) - Interfacing with Data Base Systems B.5, F.3 S10.4-A(1) - Varying-Length String Package A.6 S10.4-A(2) - String Manipulation Functions A.6, F.3
Scientific and Mathematical
R11.1-A(1) - Standard Mathematics Packages A.6, G.5 S11.1-B(1) - Floating Point Facilities G.5 S11.2-A(1) - Array Representation B.5
The above analysis shows that all the formal Requirements have been thoroughly met and it is only the Study Topics for parallel processing where compromises have been made.
We can therefore conclude that Ada 95 clearly meets the spirit of the Requirements as expressed in [DoD 90].
Laurent Guerby Ada 95 Rationale