[Ada Information Clearinghouse]

Ada '83 Quality and Style:

Guidelines for Professional Programmers

Copyright 1989, 1991,1992 Software Productivity Consortium, Inc., Herndon, Virginia.

APPENDIX A:
Map from Ada Language Reference Manual to Guidelines

This table links sections of the Ada '83 Language Reference Manual to related topic sections in the Ada '83 Style Guide. These references have been incorporated as HTML-linked cross-references in both AdaIC's new (Aug '95) version of the HTML LRM and this version of the Style Guide. For an example scroll to the end of LRM section 2.3 or Style Guide section 2.1.1.
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

Back to document index