Information technology -- Programming languages -- Ada

This document specifies the form and meaning of programs written in Ada. Its purpose is to promote the portability of Ada programs to a variety of computing systems.
This document specifies:
— The form of a program written in Ada;
— The effect of translating and executing such a program;
— The manner in which program units can be combined to form Ada programs;
— The language-defined library units that a conforming implementation is required to supply;
— The permissible variations in conformance to the rules of this document, and the manner in which they are to be documented;
— Those violations of the requirements of this document that a conforming implementation is required to detect, and the effect of attempting to translate or execute a program containing such violations;
— Those violations of the requirements of this document that a conforming implementation is not required to detect.
This document does not specify:
— The means whereby a program written in Ada is transformed into object code executable by a processor;
— The means whereby translation or execution of programs is invoked and the executing units are controlled;
— The size or speed of the object code, or the relative execution speed of different language constructs;
— The form or contents of any listings produced by implementations; in particular, the form or contents of error or warning messages;
— The effect of unspecified execution;
— The size of a program or program unit that will exceed the capacity of a particular conforming implementation.

Technologies de l'information -- Langages de programmation -- Ada

[Not translated]

General Information

Status
Not Published
Technical Committee
Current Stage
98 - Abandoned project (Adopted Project)
Start Date
03-Aug-2022
Due Date
08-Aug-2022
Completion Date
03-Aug-2022

Buy Standard

Standard
ISO/IEC 8652:2023 - Information technology — Programming languages — Ada Released:2. 05. 2023
English language
1048 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 8652
Fourth edition
2023-05
Information technology —
Programming languages — Ada
Technologies de l'information — Langages de programmation — Ada
Reference number
© ISO/IEC 2023
© ISO/IEC 2023
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii
© ISO/IEC 2023 – All rights reserved

Contents
Foreword . xiii
Introduction . xv
1 Scope . 1
2 Normative references . 1
3 Terms and definitions . 2
3.1 Types, objects, and their properties . 2
3.2 Subprograms and their properties . 7
3.3 Other syntactic constructs . 7
3.4 Runtime actions . 10
3.5 Exceptional situations . 10
4 General . 11
4.1 Structure . 11
4.2 Conformity of an Implementation . 12
4.3 Method of Description and Syntax Notation . 14
4.4 Classification of Errors . 15
5 Lexical Elements . 16
5.1 Character Set . 16
5.2 Lexical Elements, Separators, and Delimiters . 18
5.3 Identifiers . 19
5.4 Numeric Literals . 20
5.4.1 Decimal Literals . 20
5.4.2 Based Literals . 21
5.5 Character Literals . 21
5.6 String Literals . 21
5.7 Comments . 22
5.8 Pragmas . 22
5.9 Reserved Words . 25
6 Declarations and Types . 25
6.1 Declarations . 25
6.2 Types and Subtypes . 27
6.2.1 Type Declarations. 28
6.2.2 Subtype Declarations . 29
6.2.3 Classification of Operations . 30
6.2.4 Subtype Predicates . 31
6.3 Objects and Named Numbers . 34
6.3.1 Object Declarations . 36
6.3.2 Number Declarations . 39
6.4 Derived Types and Classes . 39
6.4.1 Derivation Classes . 42
6.5 Scalar Types . 44
6.5.1 Enumeration Types . 47
6.5.2 Character Types . 48
6.5.3 Boolean Types . 49
6.5.4 Integer Types . 49
6.5.5 Operations of Discrete Types . 52
6.5.6 Real Types . 53
6.5.7 Floating Point Types . 54
© ISO/IEC 2023 – All rights reserved iii

6.5.8 Operations of Floating Point Types . 55
6.5.9 Fixed Point Types . 56
6.5.10 Operations of Fixed Point Types . 58
6.6 Array Types . 59
6.6.1 Index Constraints and Discrete Ranges . 61
6.6.2 Operations of Array Types . 62
6.6.3 String Types . 63
6.7 Discriminants . 63
6.7.1 Discriminant Constraints . 66
6.7.2 Operations of Discriminated Types . 67
6.8 Record Types . 67
6.8.1 Variant Parts and Discrete Choices . 70
6.9 Tagged Types and Type Extensions . 72
6.9.1 Type Extensions . 75
6.9.2 Dispatching Operations of Tagged Types . 76
6.9.3 Abstract Types and Subprograms . 79
6.9.4 Interface Types . 80
6.10 Access Types . 82
6.10.1 Incomplete Type Declarations . 85
6.10.2 Operations of Access Types . 87
6.11 Declarative Parts . 93
6.11.1 Completions of Declarations . 93
7 Names and Expressions . 94
7.1 Names . 94
7.1.1 Indexed Components . 95
7.1.2 Slices . 96
7.1.3 Selected Components . 97
7.1.4 Attributes . 99
7.1.5 User-Defined References . 100
7.1.6 User-Defined Indexing . 101
7.2 Literals . 103
7.2.1 User-Defined Literals . 104
7.3 Aggregates . 106
7.3.1 Record Aggregates . 106
7.3.2 Extension Aggregates . 108
7.3.3 Array Aggregates . 110
7.3.4 Delta Aggregates . 114
7.3.5 Container Aggregates . 115
7.4 Expressions . 121
7.5 Operators and Expression Evaluation . 123
7.5.1 Logical Operators and Short-circuit Control Forms . 124
7.5.2 Relational Operators and Membership Tests . 125
7.5.3 Binary Adding Operators . 128
7.5.4 Unary Adding Operators . 129
7.5.5 Multiplying Operators . 129
7.5.6 Highest Precedence Operators . 132
7.5.7 Conditional Expressions . 132
7.5.8 Quantified Expressions . 134
7.5.9 Declare Expressions . 135
7.5.10 Reduction Expressions . 136
7.6 Type Conversions. 139
7.7 Qualified Expressions . 144
7.8 Allocators .
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.