Contents - Ada 95 Rationale

From OC Systems Wiki!
Jump to: navigation, search



Part One Introduction

I Evolution of Ada 95

I.1 The Revision Process
I.2 The Requirements
I.3 The Main User Needs
I.4 The Approach
I.5 Using this Document

II Highlights of Ada 95

II.1 Programming by Extension
II.2 Class Wide Programming
II.3 Abstract Types and Subprograms
II.4 Summary of Type Extension
II.5 Dynamic Selection
II.6 Other Access Types
II.7 Hierarchical Libraries
II.8 Private Child Units
II.9 Protected Types
II.10 Task Scheduling and Timing
II.11 Generic Parameters
II.12 Other Improvements
II.13 The Predefined Library
II.14 The Specialized Needs Annexes
II.15 Conclusion

III Overview of the Ada Language

III.1 Objects, Types, Classes and Operations
III.2 Statements, Expressions and Elaboration
III.3 System Construction
III.4 Multitasking
III.5 Exception Handling
III.6 Low Level Programming
III.7 Standard Library
III.8 Application Specific Facilities
III.9 Summary

Part Two The Core Language

1 Introduction

1.1 Overall Approach
1.2 The Reference Manual
1.3 Syntax
1.4 Classification of Errors
1.5 Requirements Summary

2 Lexical Elements

2.1 Reserved Words and Identifiers
2.2 Program Text
2.3 Pragmas
2.4 Requirements Summary

3 Types and Expressions

3.1 Types, Classes, Objects and Views
3.2 Character Types
3.3 Numeric Types
3.4 Composite Types
3.5 Array Types
3.6 Record Types
3.7 Access Types
3.8 Type Conversion
3.9 Staticness
3.10 Other Improvements
3.11 Requirements Summary

4 Object Oriented Programming

4.1 Background and Concepts
4.2 General Approach
4.3 Class Wide Types and Operations
4.4 Examples of Use
4.5 Dispatching and Redispatching
4.6 Multiple Inheritance
4.7 Relationship with Previous Work
4.8 Requirements Summary

5 Statements

6 Subprograms

6.1 Parameter and Result Mechanism
6.2 Renaming of Bodies and Conformance
6.3 Overloading of Equality and Inequality Operators
6.4 Requirements Summary

7 Packages

7.1 Private Types and Extensions
7.2 Deferred Constants
7.3 Limited Types
7.4 Controlled Types
7.5 Requirements Summary

8 Visibility Rules

8.1 Scope and Visibility
8.2 Use Clauses
8.3 Renaming
8.4 Other Improvements
8.5 Requirements Summary

9 Tasking

9.1 Protected Types
9.2 The Requeue Statement
9.3 Timing
9.4 Asynchronous Transfer of Control
9.5 The Abort Statement

10 Program Structure and Compilation Issues

10.1 The Hierarchical Library
10.2 Program Structure
10.3 Elaboration
10.4 Library Package Bodies
10.5 Other Improvements
10.6 Requirements Summary

11 Exceptions

11.1 Numeric Error
11.2 Exception Occurrences
11.3 Exceptions and Optimization
11.4 Other Improvements
11.5 Requirements Summary

12 Generics

12.1 The Contract Model
12.2 Numeric Types
12.3 Access Types
12.4 Derived Types
12.5 Tagged Types
12.6 Package Parameters
12.7 Other Improvements
12.8 Requirements Summary

13 Representation Issues

13.1 Representation of Data
13.2 The Package System
13.3 The Valid Attribute
13.4 Storage Pool Management
13.5 Freezing of Representations
13.6 The Pragma Restrictions
13.7 Requirements Summary

Part Three The Annexes

A Predefined Language Environment

A.1 Character Handling
A.2 String Handling
A.3 Numerics Packages and Attributes
A.4 Input and Output
A.5 Command Line
A.6 Requirements Summary

B Interface to Other Languages

B.1 Interfacing Pragmas
B.2 C Interface Packages
B.3 COBOL Interface Package
B.4 Fortran Interface Package
B.5 Requirements Summary

C Systems Programming

C.1 Access to Machine Operations
C.2 Required Representation Support
C.3 Interrupt Support
C.4 Preelaboration Requirements
C.5 Shared Variable Control
C.6 Task Identification and Attributes
C.7 Requirements Summary

D Real-Time Systems

D.1 Task Priorities
D.2 Priority Scheduling
D.3 Priority Ceiling Locking
D.4 Entry Queuing Policies
D.5 Dynamic Priorities
D.6 Preemptive Abort
D.7 Tasking Restrictions
D.8 Monotonic Time
D.9 Delay Accuracy
D.10 Synchronous Task Control
D.11 Asynchronous Task Control
D.12 Special Optimization and Determinism Rules
D.13 Requirements Summary

E Distributed Systems

E.1 The Partition Model
E.2 Categorization of Library Packages
E.3 Consistency of a Distributed System
E.4 Remote Subprogram Calls
E.5 Post-Compilation Partitioning
E.6 Configuring a Distributed System
E.7 Partition Communication Subsystem
E.8 Requirements Summary

F Information Systems

F.1 Decimal Computation
F.2 Edited Output
F.3 Requirements Summary

G Numerics

G.1 Complex Arithmetic
G.2 Floating Point Machine Numbers
G.3 Assignments to Variables of Unconstrained Numeric Types
G.4 Accuracy and Other Performance Issues
G.5 Requirements Summary

H Safety and Security

H.1 Understanding Program Execution
H.2 Reviewable Object Code
H.3 Safety and Security Restrictions
H.4 Validation against the Annex
H.5 Issues outside the Scope of the Standard
H.6 Requirements Summary

Part Four Appendices

Appendix X Upward Compatibility

X.1 Reserved Words
X.2 Type Character
X.3 Library Package Bodies
X.4 Indefinite Generic Parameters
X.5 Numeric Error
X.6 Other Incompatibilities
X.7 Conclusion

Appendix Y Revisions to Drafts

Y.1 Core Language
Y.2 Predefined Environment
Y.3 Specialized Needs Annexes

Appendix Z Requirements

Z.1 Analysis
Z.2 Conclusion



Laurent Guerby

Ada 95 Rationale