Table of Contents
Foreword to this version of the Ada Reference Manual
1. General
1.1 Scope
1.1.1 Extent
1.1.2 Structure
1.1.3 Conformity of an Implementation with the Standard
1.1.4 Method of Description and Syntax Notation
1.1.5 Classification of Errors
1.3 Definitions
2.1 Character Set
2.2 Lexical Elements, Separators, and Delimiters
2.3 Identifiers
2.4 Numeric Literals
2.4.1 Decimal Literals
2.4.2 Based Literals
2.6 String Literals
2.7 Comments
2.8 Pragmas
2.9 Reserved Words
3.1 Declarations
3.2.1 Type Declarations
3.2.2 Subtype Declarations
3.2.3 Classification of Operations
3.3.1 Object Declarations
3.3.2 Number Declarations
3.4.1 Derivation Classes
3.5 Scalar Types
3.5.1 Enumeration Types
3.5.2 Character Types
3.5.3 Boolean Types
3.5.4 Integer Types
3.5.5 Operations of Discrete Types
3.5.6 Real Types
3.5.7 Floating Point Types
3.5.8 Operations of Floating Point Types
3.5.9 Fixed Point Types
3.5.10 Operations of Fixed Point Types
3.6 Array Types
3.6.1 Index Constraints and Discrete Ranges
3.6.2 Operations of Array Types
3.6.3 String Types
3.7 Discriminants
3.7.1 Discriminant Constraints
3.7.2 Operations of Discriminated Types
3.8 Record Types
3.8.1 Variant Parts and Discrete Choices
3.9 Tagged Types and Type Extensions
3.9.1 Type Extensions
3.9.2 Dispatching Operations of Tagged Types
3.9.3 Abstract Types and Subprograms
3.10 Access Types
3.10.1 Incomplete Type Declarations
3.10.2 Operations of Access Types
3.11 Declarative Parts
3.11.1 Completions of Declarations
4.1 Names
4.1.1 Indexed Components
4.1.2 Slices
4.1.3 Selected Components
4.1.4 Attributes
4.2 Literals
4.3 Aggregates
4.3.1 Record Aggregates
4.3.2 Extension Aggregates
4.3.3 Array Aggregates
4.4 Expressions
4.5 Operators and Expression Evaluation
4.5.1 Logical Operators and Short-circuit Control Forms
4.5.2 Relational Operators and Membership Tests
4.5.3 Binary Adding Operators
4.5.4 Unary Adding Operators
4.5.5 Multiplying Operators
4.5.6 Highest Precedence Operators
4.6 Type Conversions
4.8 Allocators
4.9 Static Expressions and Static Subtypes
4.9.1 Statically Matching Constraints and Subtypes
5. Statements
5.1 Simple and Compound Statements - Sequences of Statements
5.3 If Statements
5.4 Case Statements
5.5 Loop Statements
5.6 Block Statements
5.7 Exit Statements
5.8 Goto Statements
6. Subprograms
6.3.1 Conformance Rules
6.3.2 Inline Expansion of Subprograms
6.4 Subprogram Calls
6.4.1 Parameter Associations
7. Packages
7.1 Package Specifications and Declarations
7.2 Package Bodies
7.3 Private Types and Private Extensions
7.3.1 Private Operations
7.5 Limited Types
7.6 User-Defined Assignment and Finalization
7.6.1 Completion and Finalization
8.3 Visibility
8.4 Use Clauses
8.5.1 Object Renaming Declarations
8.5.2 Exception Renaming Declarations
8.5.3 Package Renaming Declarations
8.5.4 Subprogram Renaming Declarations
8.5.5 Generic Renaming Declarations
8.6 The Context of Overload Resolution
9.1 Task Units and Task Objects
9.2 Task Execution - Task Activation
9.3 Task Dependence - Termination of Tasks
9.4 Protected Units and Protected Objects
9.5.1 Protected Subprograms and Protected Actions
9.5.2 Entries and Accept Statements
9.5.3 Entry Calls
9.5.4 Requeue Statements
9.6 Delay Statements, Duration, and Time
9.7.1 Selective Accept
9.7.2 Timed Entry Calls
9.7.3 Conditional Entry Calls
9.7.4 Asynchronous Transfer of Control
9.8 Abort of a Task - Abort of a Sequence of Statements
9.10 Shared Variables
9.11 Example of Tasking and Synchronization
10. Program Structure and Compilation Issues
10.1 Separate Compilation
10.1.1 Compilation Units - Library Units
10.1.2 Context Clauses - With Clauses
10.1.3 Subunits of Compilation Units
10.1.4 The Compilation Process
10.1.5 Pragmas and Program Units
10.1.6 Environment-Level Visibility Rules
10.2 Program Execution
10.2.1 Elaboration Control
11. Exceptions
11.2 Exception Handlers
11.3 Raise Statements
11.4 Exception Handling
11.4.1 The Package Exceptions
11.4.2 Example of Exception Handling
11.5 Suppressing Checks
11.6 Exceptions and Optimization
12. Generic Units
12.1 Generic Declarations
12.2 Generic Bodies
12.4 Formal Objects
12.5 Formal Types
12.5.1 Formal Private and Derived Types
12.5.2 Formal Scalar Types
12.5.3 Formal Array Types
12.5.4 Formal Access Types
12.6 Formal Subprograms
12.7 Formal Packages
12.8 Example of a Generic Package
13.1 Operational and Representation Items
13.2 Pragma Pack
13.3 Operational and Representation Attributes
13.4 Enumeration Representation Clauses
13.5 Record Layout
13.5.1 Record Representation Clauses
13.5.2 Storage Place Attributes
13.5.3 Bit Ordering
13.7 The Package System
13.7.1 The Package System.Storage_Elements
13.7.2 The Package System.Address_To_Access_Conversions
13.9 Unchecked Type Conversions
13.9.1 Data Validity
13.9.2 The Valid Attribute
13.10 Unchecked Access Value Creation
13.11 Storage Management
13.11.1 The Max_Size_In_Storage_Elements Attribute
13.11.2 Unchecked Storage Deallocation
13.11.3 Pragma Controlled
13.12 Pragma Restrictions
13.13 Streams
13.13.1 The Package Streams
13.13.2 Stream-Oriented Attributes
13.14 Freezing Rules
A. Predefined Language Environment
A.2 The Package Ada
A.3.1 The Package Characters
A.3.2 The Package Characters.Handling
A.3.3 The Package Characters.Latin_1
A.4 String Handling
A.4.1 The Package Strings
A.4.2 The Package Strings.Maps
A.4.3 Fixed-Length String Handling
A.4.4 Bounded-Length String Handling
A.4.5 Unbounded-Length String Handling
A.4.6 String-Handling Sets and Mappings
A.4.7 Wide_String Handling
A.5.1 Elementary Functions
A.5.2 Random Number Generation
A.5.3 Attributes of Floating Point Types
A.5.4 Attributes of Fixed Point Types
A.6 Input-Output
A.7 External Files and File Objects
A.8 Sequential and Direct Files
A.8.1 The Generic Package Sequential_IO
A.8.2 File Management
A.8.3 Sequential Input-Output Operations
A.8.4 The Generic Package Direct_IO
A.8.5 Direct Input-Output Operations
A.9 The Generic Package Storage_IO
A.10 Text Input-Output
A.10.1 The Package Text_IO
A.10.2 Text File Management
A.10.3 Default Input, Output, and Error Files
A.10.4 Specification of Line and Page Lengths
A.10.5 Operations on Columns, Lines, and Pages
A.10.6 Get and Put Procedures
A.10.7 Input-Output of Characters and Strings
A.10.8 Input-Output for Integer Types
A.10.9 Input-Output for Real Types
A.10.10 Input-Output for Enumeration Types
A.12 Stream Input-Output
A.12.1 The Package Streams.Stream_IO
A.12.2 The Package Text_IO.Text_Streams
A.12.3 The Package Wide_Text_IO.Text_Streams
A.13 Exceptions in Input-Output
A.14 File Sharing
B. Interface to Other Languages
B.3.1 The Package Interfaces.C.Strings
B.3.2 The Generic Package Interfaces.C.Pointers
C.1 Access to Machine Operations
C.2 Required Representation Support
C.3.1 Protected Procedure Handlers
C.3.2 The Package Interrupts
C.4 Preelaboration Requirements
C.7 Task Identification and Attributes
C.7.1 The Package Task_Identification
C.7.2 The Package Task_Attributes
D.1 Task Priorities
D.2.1 The Task Dispatching Model
D.2.2 The Standard Task Dispatching Policy
D.6 Preemptive Abort
D.8 Monotonic Time
D.9 Delay Accuracy
D.11 Asynchronous Task Control
D.12 Other Optimizations and Determinism Rules
E.1 Partitions
E.2 Categorization of Library Units
E.2.1 Shared Passive Library Units
E.2.2 Remote Types Library Units
E.2.3 Remote Call Interface Library Units
E.3 Consistency of a Distributed System
E.4.1 Pragma Asynchronous
E.4.2 Example of Use of a Remote Access-to-Class-Wide Type
E.5 Partition Communication Subsystem
F.1 Machine_Radix Attribute Definition Clause
F.3 Edited Output for Decimal Types
F.3.1 Picture String Formation
F.3.2 Edited Output Generation
F.3.3 The Package Text_IO.Editing
F.3.4 The Package Wide_Text_IO.Editing
G. Numerics
G.1.1 Complex Types
G.1.2 Complex Elementary Functions
G.1.3 Complex Input-Output
G.1.4 The Package Wide_Text_IO.Complex_IO
G.2 Numeric Performance Requirements
G.2.1 Model of Floating Point Arithmetic
G.2.2 Model-Oriented Attributes of Floating Point Types
G.2.3 Model of Fixed Point Arithmetic
G.2.4 Accuracy Requirements for the Elementary Functions
G.2.5 Performance Requirements for Random Number Generation
G.2.6 Accuracy Requirements for Complex Arithmetic
H.2 Documentation of Implementation Decisions
H.3.1 Pragma Reviewable
H.3.2 Pragma Inspection_Point
H.4 Safety and Security Restrictions
J.1 Renamings of Ada 83 Library Units
J.2 Allowed Replacements of Characters
J.5 ASCII
J.6 Numeric_Error
J.7 At Clauses
J.7.1 Interrupt Entries
J.8 Mod Clauses
J.9 The Storage_Size Attribute
K. Language-Defined Attributes
M. Implementation-Defined Characteristics
N. Glossary
Copyright © 1992,1993,1994,1995 Intermetrics, Inc.
Copyright © 2000 The MITRE Corporation, Inc.
Ada Reference Manual