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

Help | Credits | Copyright | Index | Search | Syntax

TOC level: subclauses (--.--.--). Zoom to list sections (--) or clauses (--.--).

Cover Page | Foreword | Introduction | Core Language | Annexes

Core Language

1. General -- TOC
  1. Scope -- TOC
    1. Extent
    2. Structure
    3. Conformity of an Implementation with the Standard
    4. Method of Description and Syntax Notation
    5. Classification of Errors
  2. Normative References
  3. Definitions
2. Lexical Elements -- TOC
  1. Character Set
  2. Lexical Elements, Separators, and Delimiters
  3. Identifiers
  4. Numeric Literals -- TOC
    1. Decimal Literals
    2. Based Literals
  5. Character Literals
  6. String Literals
  7. Comments
  8. Pragmas
  9. Reserved Words
3. Declarations and Types -- TOC
  1. Declarations
  2. Types and Subtypes -- TOC
    1. Type Declarations
    2. Subtype Declarations
    3. Classification of Operations
  3. Objects and Named Numbers -- TOC
    1. Object Declarations
    2. Number Declarations
  4. Derived Types and Classes -- TOC
    1. Derivation Classes
  5. Scalar Types -- TOC
    1. Enumeration Types
    2. Character Types
    3. Boolean Types
    4. Integer Types
    5. Operations of Discrete Types
    6. Real Types
    7. Floating Point Types
    8. Operations of Floating Point Types
    9. Fixed Point Types
    10. Operations of Fixed Point Types
  6. Array Types -- TOC
    1. Index Constraints and Discrete Ranges
    2. Operations of Array Types
    3. String Types
  7. Discriminants -- TOC
    1. Discriminant Constraints
    2. Operations of Discriminated Types
  8. Record Types -- TOC
    1. Variant Parts and Discrete Choices
  9. Tagged Types and Type Extensions -- TOC
    1. Type Extensions
    2. Dispatching Operations of Tagged Types
    3. Abstract Types and Subprograms
  10. Access Types -- TOC
    1. Incomplete Type Declarations
    2. Operations of Access Types
  11. Declarative Parts -- TOC
    1. Completions of Declarations
4. Names and Expressions -- TOC
  1. Names -- TOC
    1. Indexed Components
    2. Slices
    3. Selected Components
    4. Attributes
  2. Literals
  3. Aggregates -- TOC
    1. Record Aggregates
    2. Extension Aggregates
    3. Array Aggregates
  4. Expressions
  5. Operators and Expression Evaluation -- TOC
    1. Logical Operators and Short-circuit Control Forms
    2. Relational Operators and Membership Tests
    3. Binary Adding Operators
    4. Unary Adding Operators
    5. Multiplying Operators
    6. Highest Precedence Operators
  6. Type Conversions
  7. Qualified Expressions
  8. Allocators
  9. Static Expressions and Static Subtypes -- TOC
    1. Statically Matching Constraints and Subtypes
5. Statements -- TOC
  1. Simple and Compound Statements - Sequences of Statements
  2. Assignment Statements
  3. If Statements
  4. Case Statements
  5. Loop Statements
  6. Block Statements
  7. Exit Statements
  8. Goto Statements
6. Subprograms -- TOC
  1. Subprogram Declarations
  2. Formal Parameter Modes
  3. Subprogram Bodies -- TOC
    1. Conformance Rules
    2. Inline Expansion of Subprograms
  4. Subprogram Calls -- TOC
    1. Parameter Associations
  5. Return Statements
  6. Overloading of Operators
7. Packages -- TOC
  1. Package Specifications and Declarations
  2. Package Bodies
  3. Private Types and Private Extensions -- TOC
    1. Private Operations
  4. Deferred Constants
  5. Limited Types
  6. User-Defined Assignment and Finalization -- TOC
    1. Completion and Finalization
8. Visibility Rules -- TOC
  1. Declarative Region
  2. Scope of Declarations
  3. Visibility
  4. Use Clauses
  5. Renaming Declarations -- TOC
    1. Object Renaming Declarations
    2. Exception Renaming Declarations
    3. Package Renaming Declarations
    4. Subprogram Renaming Declarations
    5. Generic Renaming Declarations
  6. The Context of Overload Resolution
9. Tasks and Synchronization -- TOC
  1. Task Units and Task Objects
  2. Task Execution - Task Activation
  3. Task Dependence - Termination of Tasks
  4. Protected Units and Protected Objects
  5. Intertask Communication -- TOC
    1. Protected Subprograms and Protected Actions
    2. Entries and Accept Statements
    3. Entry Calls
    4. Requeue Statements
  6. Delay Statements, Duration, and Time
  7. Select Statements -- TOC
    1. Selective Accept
    2. Timed Entry Calls
    3. Conditional Entry Calls
    4. Asynchronous Transfer of Control
  8. Abort of a Task - Abort of a Sequence of Statements
  9. Task and Entry Attributes
  10. Shared Variables
  11. Example of Tasking and Synchronization
10. Program Structure and Compilation Issues -- TOC
  1. Separate Compilation -- TOC
    1. Compilation Units - Library Units
    2. Context Clauses - With Clauses
    3. Subunits of Compilation Units
    4. The Compilation Process
    5. Pragmas and Program Units
    6. Environment-Level Visibility Rules
  2. Program Execution -- TOC
    1. Elaboration Control
11. Exceptions -- TOC
  1. Exception Declarations
  2. Exception Handlers
  3. Raise Statements
  4. Exception Handling -- TOC
    1. The Package Exceptions
    2. Example of Exception Handling
  5. Suppressing Checks
  6. Exceptions and Optimization
12. Generic Units -- TOC
  1. Generic Declarations
  2. Generic Bodies
  3. Generic Instantiation
  4. Formal Objects
  5. Formal Types -- TOC
    1. Formal Private and Derived Types
    2. Formal Scalar Types
    3. Formal Array Types
    4. Formal Access Types
  6. Formal Subprograms
  7. Formal Packages
  8. Example of a Generic Package
13. Representation Issues -- TOC
  1. Representation Items
  2. Pragma Pack
  3. Representation Attributes
  4. Enumeration Representation Clauses
  5. Record Layout -- TOC
    1. Record Representation Clauses
    2. Storage Place Attributes
    3. Bit Ordering
  6. Change of Representation
  7. The Package System -- TOC
    1. The Package System.Storage_Elements
    2. The Package System.Address_To_Access_Conversions
  8. Machine Code Insertions
  9. Unchecked Type Conversions -- TOC
    1. Data Validity
    2. The Valid Attribute
  10. Unchecked Access Value Creation
  11. Storage Management -- TOC
    1. The Max_Size_In_Storage_Elements Attribute
    2. Unchecked Storage Deallocation
    3. Pragma Controlled
  12. Pragma Restrictions
  13. Streams -- TOC
    1. The Package Streams
    2. Stream-Oriented Attributes
  14. Freezing Rules

Annexes

A. Predefined Language Environment -- TOC
  1. The Package Standard
  2. The Package Ada
  3. Character Handling -- TOC
    1. The Package Characters
    2. The Package Characters.Handling
    3. The Package Characters.Latin_1
  4. String Handling -- TOC
    1. The Package Strings
    2. The Package Strings.Maps
    3. Fixed-Length String Handling
    4. Bounded-Length String Handling
    5. Unbounded-Length String Handling
    6. String-Handling Sets and Mappings
    7. Wide_String Handling
  5. The Numerics Packages -- TOC
    1. Elementary Functions
    2. Random Number Generation
    3. Attributes of Floating Point Types
    4. Attributes of Fixed Point Types
  6. Input-Output
  7. External Files and File Objects
  8. Sequential and Direct Files -- TOC
    1. The Generic Package Sequential_IO
    2. File Management
    3. Sequential Input-Output Operations
    4. The Generic Package Direct_IO
    5. Direct Input-Output Operations
  9. The Generic Package Storage_IO
  10. Text Input-Output -- TOC
    1. The Package Text_IO
    2. Text File Management
    3. Default Input, Output, and Error Files
    4. Specification of Line and Page Lengths
    5. Operations on Columns, Lines, and Pages
    6. Get and Put Procedures
    7. Input-Output of Characters and Strings
    8. Input-Output for Integer Types
    9. Input-Output for Real Types
    10. Input-Output for Enumeration Types
  11. Wide Text Input-Output
  12. Stream Input-Output -- TOC
    1. The Package Streams.Stream_IO
    2. The Package Text_IO.Text_Streams
    3. The Package Wide_Text_IO.Text_Streams
  13. Exceptions in Input-Output
  14. File Sharing
  15. The Package Command_Line

B. Interface to Other Languages -- TOC

  1. Interfacing Pragmas
  2. The Package Interfaces
  3. Interfacing with C -- TOC
    1. The Package Interfaces.C.Strings
    2. The Generic Package Interfaces.C.Pointers
  4. Interfacing with COBOL
  5. Interfacing with Fortran

C. Systems Programming -- TOC

  1. Access to Machine Operations
  2. Required Representation Support
  3. Interrupt Support -- TOC
    1. Protected Procedure Handlers
    2. The Package Interrupts
  4. Preelaboration Requirements
  5. Pragma Discard_Names
  6. Shared Variable Control
  7. Task Identification and Attributes -- TOC
    1. The Package Task_Identification
    2. The Package Task_Attributes

D. Real-Time Systems -- TOC

  1. Task Priorities
  2. Priority Scheduling -- TOC
    1. The Task Dispatching Model
    2. The Standard Task Dispatching Policy
  3. Priority Ceiling Locking
  4. Entry Queuing Policies
  5. Dynamic Priorities
  6. Preemptive Abort
  7. Tasking Restrictions
  8. Monotonic Time
  9. Delay Accuracy
  10. Synchronous Task Control
  11. Asynchronous Task Control
  12. Other Optimizations and Determinism Rules

E. Distributed Systems -- TOC

  1. Partitions
  2. Categorization of Library Units -- TOC
    1. Shared Passive Library Units
    2. Remote Types Library Units
    3. Remote Call Interface Library Units
  3. Consistency of a Distributed System
  4. Remote Subprogram Calls -- TOC
    1. Pragma Asynchronous
    2. Example of Use of a Remote Access-to-Class-Wide Type
  5. Partition Communication Subsystem

F. Information Systems -- TOC

  1. Machine_Radix Attribute Definition Clause
  2. The Package Decimal
  3. Edited Output for Decimal Types -- TOC
    1. Picture String Formation
    2. Edited Output Generation
    3. The Package Text_IO.Editing
    4. The Package Wide_Text_IO.Editing

G. Numerics -- TOC

  1. Complex Arithmetic -- TOC
    1. Complex Types
    2. Complex Elementary Functions
    3. Complex Input-Output
    4. The Package Wide_Text_IO.Complex_IO
  2. Numeric Performance Requirements -- TOC
    1. Model of Floating Point Arithmetic
    2. Model-Oriented Attributes of Floating Point Types
    3. Model of Fixed Point Arithmetic
    4. Accuracy Requirements for the Elementary Functions
    5. Performance Requirements for Random Number Generation
    6. Accuracy Requirements for Complex Arithmetic

H. Safety and Security -- TOC

  1. Pragma Normalize_Scalars
  2. Documentation of Implementation Decisions
  3. Reviewable Object Code -- TOC
    1. Pragma Reviewable
    2. Pragma Inspection_Point
  4. Safety and Security Restrictions

J. Obsolescent Features -- TOC

  1. Renamings of Ada 83 Library Units
  2. Allowed Replacements of Characters
  3. Reduced Accuracy Subtypes
  4. The Constrained Attribute
  5. ASCII
  6. Numeric_Error
  7. At Clauses -- TOC
    1. Interrupt Entries
  8. Mod Clauses
  9. The Storage_Size Attribute

K. Language-Defined Attributes

L. Language-Defined Pragmas

M. Implementation-Defined Characteristics

N. Glossary

P. Syntax Summary


Help | Credits | Copyright | Index | Search | Syntax

TOC level: subclauses (--.--.--). Zoom to list sections (--) or clauses (--.--).

Ada WWW Home -- Email comments, additions, corrections, gripes, kudos, etc. to:

Magnus Kempe -- Magnus.Kempe@di.epfl.ch
Copyright statement
Page last generated: 95-03-12