1. |
Introduction |
1.1 |
Scope of the Standard |
1.1.1 |
Extent of the Standard |
1.1.2 |
Conformity of an Implementation with the Standard |
1.2 |
Structure of the Standard |
1.3 |
Design Goals and Sources |
1.4 |
Language Summary |
1.5 |
Method of Description and Syntax Notation |
2.1.8 |
1.6 |
Classification of Errors |
5.9 |
2. |
Lexical Elements |
2.1 |
Character Set |
2.2 |
Lexical Elements, Separators, and Delimiters |
2.1.1 |
2.3 |
Identifiers |
3.1.1, 3.1.3, 3.1.4, 3.2, 5.2.1, 5.5.4, 8.1.1, 8.1.2 |
2.4 |
Numeric Literals |
3.1.2, 3.2.5, 7.2.6 |
2.4.1 |
Decimal Literals |
2.4.2 |
Based Literals |
2.5 |
Character Literals |
3.2.5 |
2.6 |
String Literals |
2.1.1, 2.1.2, 2.1.4, 3.2.5 |
2.7 |
Comments |
2.1.4, 2.1.7, 3.3, 5.2.1, 5.6.7, 5.6.8, 7.1.3, 7.1.5, 7.2.5, 8.3.5 |
2.8 |
Pragmas |
8.4.2, 9.1.1 |
2.9 |
Reserved Words |
3.1.3 |
2.10 |
Allowable Replacements of Characters |
3. |
Declarations and Types |
2.1.4, 2.1.6, 2.1.8, 4.1.4, 5.3 |
3.1 |
Declarations |
3.2.1 |
3.2 |
Objects and Named Numbers |
3.2.3, 3.2.5, 4.1.5, 7.2.6, 8.2.1 |
3.2.1 |
Object Declarations |
4.1.6, 5.9.6 |
3.2.2 |
Number Declarations |
3.3 |
Types and Subtypes |
3.2.2, 3.4.1, 4.1.5, 7.2.7, 8.2.3, 9.1.5 |
3.3.1 |
Type Declarations |
3.3.5 |
3.3.2 |
Subtype Declarations |
5.3.1, 5.5.1, 5.6.3, 5.7.2, 7.2.7, 9.1.5 |
3.3.3 |
Classification of Operations |
3.4 |
Derived Types |
3.4.1, 5.3.1, 7.2.7, 9.1.5 |
3.5 |
Scalar Types |
3.4.1, 5.3.1, 5.5.1 |
3.5.1 |
Enumeration Types |
2.1.4, 3.4.2, 5.6.3, 5.7.1 |
3.5.2 |
Character Types |
3.5.3 |
Boolean Types |
3.2.3 |
3.5.4 |
Integer Types |
7.1.1, 7.1.2, 7.2.1, 7.2.5 |
3.5.5 |
Operations of Discrete Types |
3.5.6 |
Real Types |
7.1.1, 7.1.2, 5.5.6, 7.2.5 |
3.5.7 |
Floating Point Types |
7.2.1, 7.2.2, 7.2.3 |
3.5.8 |
Operations of Floating Point Types |
3.5.9 |
Fixed Point Types |
7.1.1, 7.2.1 |
3.5.10 |
Operations of Fixed Point Types |
3.6 |
Array Types |
5.3.2, 5.5.1, 5.5.2, 5.9.3, 8.2.2, 8.3.4, 9.1.3 |
3.6.1 |
Index Constraints and Discrete Ranges |
5.5.2, 9.1.3 |
3.6.2 |
Operations of Array Types |
5.6.2 |
3.6.3 |
The Type String |
2.1.1 |
3.7 |
Record Types |
2.1.2, 5.4.1, 5.4.2, 5.4.3, 5.9.3 |
3.7.1 |
Discriminants |
3.7.2 |
Discriminant Constraints |
3.7.3 |
Variant Parts |
3.7.4 |
Operations of Record Types |
3.8 |
Access Types |
5.4.3, 5.9.2, 6.1.3, 7.6.6, 7.7.3 |
3.8.1 |
Incomplete Type Declarations |
5.4.3 |
3.8.2 |
Operations of Access Types |
|
3.9 |
Declarative Parts |
2.1.4, 5.9.6 |
4. |
Names and Expressions |
4.1 |
Names |
3.2, 8.1.1, 8.1.2 |
4.1.1 |
Indexed Components |
4.1.2 |
Slices |
5.6.2 |
4.1.3 |
Selected Components |
4.1.4 |
Attributes |
8.2.4 |
4.2 |
Literals |
8.2.4 |
4.3 |
Aggregates |
|
4.3.1 |
Record Aggregates |
5.6.10 |
4.3.2 |
Array Aggregates |
4.4 |
Expressions |
2.1.1, 2.1.3, 2.1.5, 5.5, 5.5.3, 7.2.7 |
4.5 |
Operators and Expression Evaluation |
2.1.1, 2.1.3, 5.5.3, 5.7.1, 5.7.2, 5.7.4, 7.2.7 |
4.5.1 |
Logical Operators and Short-circuit Control Forms |
5.5.4, 5.5.5 |
4.5.2 |
Relational Operators and Membership Tests |
2.1.1, 5.5.6, 5.7.5, 7.2.8 |
4.5.3 |
Binary Adding Operators |
2.1.1, 5.7.4 |
4.5.4 |
Unary Adding Operators |
4.5.5. |
Multiplying Operators |
9.1.5 |
4.5.6 |
Highest Precedence Operators |
5.5.3 |
4.5.7 |
Accuracy of Operations with Real Operands |
5.5.6, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.7 |
4.6 |
Type Conversions |
5.9.1 |
4.7 |
Qualified Expressions |
4.8 |
Allocators |
5.4.3, 6.1.3, 7.6.6 |
4.9 |
Static Expressions and Static Subtypes |
3.2.5, 7.2.6, 8.2.1 |
4.10 |
Universal Expressions |
7.2.6 |
5. |
Statements |
2.1.2, 2.1.6, 2.1.8, 3.3.6, 5.6 |
5.1 |
Simple and Compound Statements - Sequences of Statements |
5.6.1 |
5.2 |
Assignment Statement |
2.1.3, 5.6.2 |
5.2.1 |
Array Assignments |
5.3 |
If Statements |
2.1.5, 3.3.7, 5.6.1, 5.6.5 |
5.4 |
Case Statements |
3.3.7, 5.6.1, 5.6.3 |
5.5 |
Loop Statements |
5.1.1, 5.5.1, 5.6.1, 5.6.2, 5.6.4, 5.6.6, 7.4.2 |
5.6 |
Block Statements |
3.3.7, 5.1.2, 5.6.1, 5.6.9, 5.8.4, 9.1.2 |
5.7 |
Exit Statements |
5.1.3, 5.6.4, 5.6.4, 5.6.5 |
5.8 |
Return Statements |
5.6.8 |
5.9 |
Goto Statements |
5.6.7, 5.8.1 |
6. |
Subprograms |
4.1.2 |
6.1 |
Subprogram Declarations |
2.1.2, 3.2.4, 3.3.3, 4.1.1, 4.1.4, 4.1.5, 4.2.1, 5.2.1, 5.6.6, 7.1.3, 7.1.4 |
6.2 |
Formal Parameter Modes |
2.1.5, 5.2.4, 5.9.3 |
6.3 |
Subprogram Bodies |
2.1.7, 3.3.4, 3.3.7, 5.1.4, 9.1.1 |
6.3.1 |
Conformance Rules |
6.3.2 |
Inline Expansion of Subprograms |
9.1.1 |
6.4 |
Subprogram Calls |
2.1.1, 4.1.3, 5.2.2, 5.6.6, 5.9.3 |
6.4.1 |
Parameter Associations |
5.2.2, 5.9.8 |
6.4.2 |
Default Parameters |
5.2.2, 5.2.3 |
6.5 |
Function Subprograms |
2.1.1, 3.2.4, 4.1.3, 4.3.1, 5.9.6 |
6.6 |
Parameter and Result Type Profile - Overloading of Subprograms |
4.2.1, 5.7.3, 8.2.5 |
6.7 |
Overloading of Operators |
5.7.5 |
7. |
Packages |
2.1.2, 4.1.4, 4.1.5 |
7.1 |
Package Structure |
4.2.1, 4.3, 7.1.5 |
7.2 |
Package Specifications and Declarations |
2.1.7, 3.2.4, 3.3.3, 4.1.1, 4.1.6, 4.2.1, 4.2.2, 4.2.4, 4.3.1, 5.1.4, 7.1.3, 7.1.5, 8.2.6, 8.3.1 |
7.3 |
Package Bodies |
2.1.7, 3.3.4, 4.1.1, 4.2.1, 4.3.1, 5.1.4, 5.9.1 |
7.4 |
Private Type and Deferred Constant Declarations |
5.3.3 |
7.4.1 |
Private Types |
5.3.3 |
7.4.2 |
Operations of a Private Type |
7.4.3 |
Deferred Constants |
7.4.4 |
Limited Types |
5.3.3, 5.7.5, 8.3.4 |
7.5 |
Example of a Table Management Package |
7.6 |
Example of a Text Handling Package |
8. |
Visibility Rules |
4.2, 5.7 |
8.1 |
Declarative Region |
4.2.3 |
8.2 |
Scope of Declarations |
4.1.6, 4.2.3, 7.6.6 |
8.3 |
Visibility |
4.1.3, 4.1.4, 4.2.1, 4.2.3, 5.7.1, 5.7.3 |
8.4 |
Use Clauses |
5.6.9, 5.7.1, 5.7.2 |
8.5 |
Renaming Declarations |
5.6.9, 5.7.1, 5.7.2 |
8.6 |
The Package Standard |
3.2.2, 7.2.1 |
8.7 |
The Context of Overload Resolution |
8.2.5 |
9. |
Tasks |
4.1.7, 4.2.4, 6, 7.4 |
9.1 |
Task Specifications and Task Bodies |
2.1.7, 3.2.4, 3.3.7, 5.1.4, 6.1.1, 6.1.4, 6.3.4, 7.1.3, 8.4.2 |
9.2 |
Task Types and Task Objects |
6.1.1, 6.1.2 |
|
9.3 |
Task Execution - Task Activation |
6.1.3, 6.1.4, 6.1.5, 6.3.2, 7.4.1, 7.4.2, 7.4.5, 8.2.6 |
9.4 |
Task Dependence - Termination of Tasks |
6.2.3, 6.3 |
9.5 |
Entries, Entry Calls, and Accept Statements |
3.2.4, 4.3.1, 5.1.4, 5.2.1, 5.2.4, 5.6.1, 5.9.4, 6.1.4, 6.2, 6.3.1, 6.3.2, 7.4.5, 7.4.7 |
9.6 |
Delay Statements, Duration, and Time |
6.1.5, 6.2.5, 7.1.1, 7.4.2, 7.4.3 |
9.7 |
Select Statements |
2.1.2, 5.6.1, 6.2.1, 6.2.6 |
9.7.1 |
Selective Waits |
6.2.1, 6.2.2, 6.2.4, 6.2.5, 6.3.2, 7.4.4 |
9.7.2 |
Conditional Entry Calls |
4.2.4, 6.2.5 |
9.7.3 |
Timed Entry Calls |
4.2.4, 6.1.5, 6.2.5 |
9.8 |
Priorities |
6.1.4, 7.4.5, 8.4.2 |
9.9 |
Task and Entry Attributes |
6.2.3 |
9.10 |
Abort Statements |
6.3.3, 7.4.6 |
9.11 |
Shared Variables |
6.2.4, 7.4.7 |
9.12 |
Example of Tasking |
10. |
Program Structure and Compilation Issues |
4.1.1 |
10.1 |
Compilation Units - Library Units |
3.3.2, 4.1.1, 7.1.4 |
10.1.1 |
Context Clauses - With Clauses |
2.1.2, 4.2.1, 4.2.3, 8.2.6, 8.4.1, 8.4.2 |
10.1.2 |
Examples of Compilation Units |
|
10.2 |
Subunits of Compilation Units |
4.1.1, 4.2.3 |
10.2.1 |
Examples of Subunits |
10.3 |
Order of Compilation |
10.4 |
The Program Library |
8.4 |
10.5 |
Elaboration of Library Units |
8.4.2 |
10.6 |
Program Optimization |
8.4.4 |
11. |
Exceptions |
4.3, 5.8, 7.5 |
11.1 |
Exception Declarations |
3.3.5, 4.3.1, 5.4.3, 7.5.2, 7.5.3 |
11.2 |
Exception Handlers |
2.1.2, 4.3.1, 5.6.9, 5.8.1, 5.8.2, 5.8.3, 5.8.4, 6.2.2, 6.3.1, 6.3.4, 7.5.2, 7.5.3, 8.2.7 |
11.3 |
Raise Statements |
4.3.1, 7.5.3, 8.2.3, 8.2.7 |
11.4 |
Exception Handling |
4.3.1, 5.8.1, 5.8.2, 5.8.3, 5.8.4, 6.2.2, 6.3.4, 7.5, 8.2.7 |
11.4.1 |
Exceptions Raised During the Execution of Statements |
5.8.1 |
11.4.2 |
Exceptions Raised During the Elaboration of Declarations |
5.8.1 |
11.5 |
Exceptions Raised During Task Communication |
5.8.1, 6.2.2 |
11.6 |
Exceptions and Optimization |
|
11.7 |
Suppressing Checks |
5.9.5 |
|
12. |
Generic Units |
|
12.1 |
Generic Declarations |
2.1.2, 3.2.4, 4.2.2, 8.1.1, 8.1.2, 8.1.3, 8.3.1, 8.3.3, 8.3.4, 8.3.5, 8.4.1, 8.4.3 |
12.1.1 |
Generic Formal Objects |
8.2.4, 8.2.6 |
12.1.2 |
Generic Formal Types |
8.2.2, 8.3.3, 8.3.4, 8.3.6 |
12.1.3 |
Generic Formal Subprograms |
8.3.6 |
12.2 |
Generic Bodies |
8.2.7 |
12.3 |
Generic Instantiation |
2.1.2, 3.2.4, 5.2.2, 8.1.1, 8.2.4, 8.2.5, 8.3.2, 8.3.6, 8.4.4 |
12.3.1 |
Matching Rules for Formal Objects |
12.3.2 |
Matching Rules for Formal Private Types |
5.3.3, 8.3.4 |
12.3.3 |
Matching Rules for Formal Scalar Types |
12.3.4 |
Matching Rules for Formal Array Types |
8.2.2 |
12.3.5 |
Matching Rules for Formal Access Types |
12.3.6 |
Matching Rules for Formal Subprograms |
12.4 |
Example of a Generic Package |
13. |
Representation Clauses and Implementation-Dependent Features |
4.1.4, 7.6 |
13.1 |
Representation Clauses |
7.6.1 |
13.2 |
Length Clauses |
5.4.3, 7.6.1 |
13.3 |
Enumeration Representation Clauses |
3.4.2, 7.6.1 |
13.4 |
Record Representation Clauses |
2.1.2, 7.6.1 |
13.5 |
Address Clauses |
5.9.4 |
13.5.1 |
Interrupts |
4.1.7, 5.9.4 |
13.6 |
Change of Representation |
7.6.1 |
13.7 |
The Package System |
7.6.2 |
13.7.1 |
System-Dependent Named Numbers |
7.4.3 |
13.7.2 |
Representation Attributes |
7.3.1 |
13.7.3 |
Representation Attributes of Real Types |
7.2.3 |
13.8 |
Machine Code Insertions |
7.1.5, 7.6.3 |
13.9 |
Interface to Other Languages |
5.9.3, 7.1.5, 7.6.4, 7.6.7 |
13.10 |
Unchecked Programming |
|
13.10.1 |
Unchecked Storage Deallocation |
5.4.3, 5.9.2, 7.6.6 |
13.10.2 |
Unchecked Type Conversions |
5.9.1, 7.6.7 |
14. |
Input-Output |
7.7 |
14.1 |
External Files and File Objects |
14.2 |
Sequential and Direct Files |
14.2.1 |
File Management |
7.7.1, 7.7.2 |
14.2.2 |
Sequential Input-Output |
5.9.7, 7.7.3 |
14.2.3 |
Specification of the Package Sequential_IO |
14.2.4 |
Direct Input-Output |
5.9.7, 7.7.1, 7.7.3 |
14.2.5 |
Specification of the Package Direct_IO |
14.3 |
Text Input-Output |
4.2.2 |
14.3.1 |
File Management |
7.7.2 |
14.3.2 |
Default Input and Output Files |
14.3.3 |
Specification of Line and Page Lengths |
14.3.4 |
Operations on Columns, Lines, and Pages |
14.3.5 |
Get and Put Procedures |
14.3.6 |
Input-Output of Characters and Strings |
14.3.7 |
Input-Output for Integer Types |
14.3.8 |
Input-Output for Real Types |
14.3.9 |
Input-Output for Enumeration Types |
14.3.10 |
Specification of the Package Text_IO |
3.2.2, 4.2.2 |
14.4 |
Exceptions in Input-Output |
14.5 |
Specification of the Package IO_Exceptions |
14.6 |
Low Level Input-Output |
7.7.4 |
14.7 |
Example of Input-Output |
|
Annexes |
A. |
Predefined Language Attributes |
3.2.5, 3.4.2, 5.3.3, 5.5.1, 5.5.2, 6.2.3, 8.2.4 |
B. |
Predefined Language Pragmas |
4.1.4, 5.9.5, 6.1.4, 6.2.4, 7.4.5, 7.4.7, 7.6.4, 9.1.1 |
C. |
Predefined Language Environment |
3.4.1, 5.7.1, 6.1.5, 7.1.1, 7.1.6, 7.2.1, 7.5.1, 7.5.2, 7.6.3 |
|
Appendices |
D. |
Glossary |
E. |
Syntax Summary |
F. |
Implementation-Dependent Characteristics |
4.1.1, 5.4.1, 7.1.1, 7.1.2, 7.1.3, 7.1.5, 7.1.6, 7.2.1, 7.2.4, 7.4.3, 7.6.2, 7.6.3, 7.6.5, 7.6.8 |