Ada 95 Reference Manual
Language and Standard Libraries
This is a hypertext version of the revised international standard (ISO/IEC 8652:1995): Information Technology -- Programming Languages -- Ada.
The entry point is the table of contents (TOC), with three "zoom levels."
TOC level: subclauses (--.--.--). Zoom to list sections
(--) or clauses (--.--).
1. General -- TOC
- Scope -- TOC
- Extent
- Structure
- Conformity of an Implementation with the Standard
- Method of Description and Syntax Notation
- Classification of Errors
- Normative References
- Definitions
2. Lexical Elements -- TOC
- Character Set
- Lexical Elements, Separators, and Delimiters
- Identifiers
- Numeric Literals -- TOC
- Decimal Literals
- Based Literals
- Character Literals
- String Literals
- Comments
- Pragmas
- Reserved Words
3. Declarations and Types -- TOC
- Declarations
- Types and Subtypes -- TOC
- Type Declarations
- Subtype Declarations
- Classification of Operations
- Objects and Named Numbers -- TOC
- Object Declarations
- Number Declarations
- Derived Types and Classes -- TOC
- Derivation Classes
- Scalar Types -- TOC
- Enumeration Types
- Character Types
- Boolean Types
- Integer Types
- Operations of Discrete Types
- Real Types
- Floating Point Types
- Operations of Floating Point Types
- Fixed Point Types
- Operations of Fixed Point Types
- Array Types -- TOC
- Index Constraints and Discrete Ranges
- Operations of Array Types
- String Types
- Discriminants -- TOC
- Discriminant Constraints
- Operations of Discriminated Types
- Record Types -- TOC
- Variant Parts and Discrete Choices
- Tagged Types and Type Extensions -- TOC
- Type Extensions
- Dispatching Operations of Tagged Types
- Abstract Types and Subprograms
- Access Types -- TOC
- Incomplete Type Declarations
- Operations of Access Types
- Declarative Parts -- TOC
- Completions of Declarations
4. Names and Expressions -- TOC
- Names -- TOC
- Indexed Components
- Slices
- Selected Components
- Attributes
- Literals
- Aggregates -- TOC
- Record Aggregates
- Extension Aggregates
- Array Aggregates
- Expressions
- Operators and Expression Evaluation -- TOC
- Logical Operators and Short-circuit Control Forms
- Relational Operators and Membership Tests
- Binary Adding Operators
- Unary Adding Operators
- Multiplying Operators
- Highest Precedence Operators
- Type Conversions
- Qualified Expressions
- Allocators
- Static Expressions and Static Subtypes -- TOC
- Statically Matching Constraints and Subtypes
5. Statements -- TOC
- Simple and Compound Statements - Sequences of Statements
- Assignment Statements
- If Statements
- Case Statements
- Loop Statements
- Block Statements
- Exit Statements
- Goto Statements
6. Subprograms -- TOC
- Subprogram Declarations
- Formal Parameter Modes
- Subprogram Bodies -- TOC
- Conformance Rules
- Inline Expansion of Subprograms
- Subprogram Calls -- TOC
- Parameter Associations
- Return Statements
- Overloading of Operators
7. Packages -- TOC
- Package Specifications and Declarations
- Package Bodies
- Private Types and Private Extensions -- TOC
- Private Operations
- Deferred Constants
- Limited Types
- User-Defined Assignment and Finalization -- TOC
- Completion and Finalization
8. Visibility Rules -- TOC
- Declarative Region
- Scope of Declarations
- Visibility
- Use Clauses
- Renaming Declarations -- TOC
- Object Renaming Declarations
- Exception Renaming Declarations
- Package Renaming Declarations
- Subprogram Renaming Declarations
- Generic Renaming Declarations
- The Context of Overload Resolution
9. Tasks and Synchronization -- TOC
- Task Units and Task Objects
- Task Execution - Task Activation
- Task Dependence - Termination of Tasks
- Protected Units and Protected Objects
- Intertask Communication -- TOC
- Protected Subprograms and Protected Actions
- Entries and Accept Statements
- Entry Calls
- Requeue Statements
- Delay Statements, Duration, and Time
- Select Statements -- TOC
- Selective Accept
- Timed Entry Calls
- Conditional Entry Calls
- Asynchronous Transfer of Control
- Abort of a Task - Abort of a Sequence of Statements
- Task and Entry Attributes
- Shared Variables
- Example of Tasking and Synchronization
10. Program Structure and Compilation Issues -- TOC
- Separate Compilation -- TOC
- Compilation Units - Library Units
- Context Clauses - With Clauses
- Subunits of Compilation Units
- The Compilation Process
- Pragmas and Program Units
- Environment-Level Visibility Rules
- Program Execution -- TOC
- Elaboration Control
11. Exceptions -- TOC
- Exception Declarations
- Exception Handlers
- Raise Statements
- Exception Handling -- TOC
- The Package Exceptions
- Example of Exception Handling
- Suppressing Checks
- Exceptions and Optimization
12. Generic Units -- TOC
- Generic Declarations
- Generic Bodies
- Generic Instantiation
- Formal Objects
- Formal Types -- TOC
- Formal Private and Derived Types
- Formal Scalar Types
- Formal Array Types
- Formal Access Types
- Formal Subprograms
- Formal Packages
- Example of a Generic Package
13. Representation Issues -- TOC
- Representation Items
- Pragma Pack
- Representation Attributes
- Enumeration Representation Clauses
- Record Layout -- TOC
- Record Representation Clauses
- Storage Place Attributes
- Bit Ordering
- Change of Representation
- The Package System -- TOC
- The Package System.Storage_Elements
- The Package System.Address_To_Access_Conversions
- Machine Code Insertions
- Unchecked Type Conversions -- TOC
- Data Validity
- The Valid Attribute
- Unchecked Access Value Creation
- Storage Management -- TOC
- The Max_Size_In_Storage_Elements Attribute
- Unchecked Storage Deallocation
- Pragma Controlled
- Pragma Restrictions
- Streams -- TOC
- The Package Streams
- Stream-Oriented Attributes
- Freezing Rules
A. Predefined Language Environment -- TOC
- The Package Standard
- The Package Ada
- Character Handling -- TOC
- The Package Characters
- The Package Characters.Handling
- The Package Characters.Latin_1
- String Handling -- TOC
- The Package Strings
- The Package Strings.Maps
- Fixed-Length String Handling
- Bounded-Length String Handling
- Unbounded-Length String Handling
- String-Handling Sets and Mappings
- Wide_String Handling
- The Numerics Packages -- TOC
- Elementary Functions
- Random Number Generation
- Attributes of Floating Point Types
- Attributes of Fixed Point Types
- Input-Output
- External Files and File Objects
- Sequential and Direct Files -- TOC
- The Generic Package Sequential_IO
- File Management
- Sequential Input-Output Operations
- The Generic Package Direct_IO
- Direct Input-Output Operations
- The Generic Package Storage_IO
- Text Input-Output -- TOC
- The Package Text_IO
- Text File Management
- Default Input, Output, and Error Files
- Specification of Line and Page Lengths
- Operations on Columns, Lines, and Pages
- Get and Put Procedures
- Input-Output of Characters and Strings
- Input-Output for Integer Types
- Input-Output for Real Types
- Input-Output for Enumeration Types
- Wide Text Input-Output
- Stream Input-Output -- TOC
- The Package Streams.Stream_IO
- The Package Text_IO.Text_Streams
- The Package Wide_Text_IO.Text_Streams
- Exceptions in Input-Output
- File Sharing
- The Package Command_Line
B. Interface to Other Languages -- TOC
- Interfacing Pragmas
- The Package Interfaces
- Interfacing with C -- TOC
- The Package Interfaces.C.Strings
- The Generic Package Interfaces.C.Pointers
- Interfacing with COBOL
- Interfacing with Fortran
C. Systems Programming -- TOC
- Access to Machine Operations
- Required Representation Support
- Interrupt Support -- TOC
- Protected Procedure Handlers
- The Package Interrupts
- Preelaboration Requirements
- Pragma Discard_Names
- Shared Variable Control
- Task Identification and Attributes -- TOC
- The Package Task_Identification
- The Package Task_Attributes
D. Real-Time Systems -- TOC
- Task Priorities
- Priority Scheduling -- TOC
- The Task Dispatching Model
- The Standard Task Dispatching Policy
- Priority Ceiling Locking
- Entry Queuing Policies
- Dynamic Priorities
- Preemptive Abort
- Tasking Restrictions
- Monotonic Time
- Delay Accuracy
- Synchronous Task Control
- Asynchronous Task Control
- Other Optimizations and Determinism Rules
E. Distributed Systems -- TOC
- Partitions
- Categorization of Library Units -- TOC
- Shared Passive Library Units
- Remote Types Library Units
- Remote Call Interface Library Units
- Consistency of a Distributed System
- Remote Subprogram Calls -- TOC
- Pragma Asynchronous
- Example of Use of a Remote Access-to-Class-Wide
Type
- Partition Communication Subsystem
F. Information Systems -- TOC
- Machine_Radix Attribute Definition Clause
- The Package Decimal
- Edited Output for Decimal Types -- TOC
- Picture String Formation
- Edited Output Generation
- The Package Text_IO.Editing
- The Package Wide_Text_IO.Editing
G. Numerics -- TOC
- Complex Arithmetic -- TOC
- Complex Types
- Complex Elementary Functions
- Complex Input-Output
- The Package Wide_Text_IO.Complex_IO
- Numeric Performance Requirements -- TOC
- Model of Floating Point Arithmetic
- Model-Oriented Attributes of Floating Point Types
- Model of Fixed Point Arithmetic
- Accuracy Requirements for the Elementary Functions
- Performance Requirements for Random Number Generation
- Accuracy Requirements for Complex Arithmetic
H. Safety and Security -- TOC
- Pragma Normalize_Scalars
- Documentation of Implementation Decisions
- Reviewable Object Code -- TOC
- Pragma Reviewable
- Pragma Inspection_Point
- Safety and Security Restrictions
J. Obsolescent Features -- TOC
- Renamings of Ada 83 Library Units
- Allowed Replacements of Characters
- Reduced Accuracy Subtypes
- The Constrained Attribute
- ASCII
- Numeric_Error
- At Clauses -- TOC
- Interrupt Entries
- Mod Clauses
- The Storage_Size Attribute
K. Language-Defined Attributes
L. Language-Defined Pragmas
M. Implementation-Defined Characteristics
N. Glossary
P. Syntax Summary
TOC level: subclauses (--.--.--). Zoom to list sections
(--) or clauses (--.--).
-- Email comments, additions, corrections, gripes, kudos, etc. to:
Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12