Appendix Z. Requirements - Ada 95 Rationale

From OC Systems Wiki!
Jump to: navigation, search

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.

Z.1 Analysis

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].

General

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

International Users

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

Programming Paradigms

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

Real-Time

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

System Programming

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

Parallel Processing

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.

Distributed Processing

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

Information Systems

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

Z.2 Conclusion

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