General Information

Abstract

ISO/IEC 11404:2007 specifies the nomenclature and shared semantics for a collection of datatypes commonly occurring in programming languages and software interfaces, referred to as the General-Purpose Datatypes (GPD). It specifies both primitive datatypes, in the sense of being defined ab initio without reference to other datatypes, and non-primitive datatypes, in the sense of being wholly or partly defined in terms of other datatypes. The specification of datatypes in ISO/IEC 11404:2007 is "general-purpose" in the sense that the datatypes specified are classes of datatype of which the actual datatypes used in programming languages and other entities requiring the concept "datatype" are particular instances. These datatypes are general in nature; thus, they serve a wide variety of information processing applications. ISO/IEC 11404:2007 expressly distinguishes three notions of datatype: the conceptual, or abstract, notion of a datatype, which characterizes the datatype by its nominal values and properties; the structural notion of a datatype, which characterizes the datatype as a conceptual organization of specific component datatypes with specific functionalities; and the implementation notion of a datatype, which characterizes the datatype by defining the rules for representation of the datatype in a given environment. ISO/IEC 11404:2007 defines the abstract notions of many commonly used primitive and non-primitive datatypes which possess the structural notion of atomicity. ISO/IEC 11404:2007 does not define all atomic datatypes; it defines only those which are common in programming languages and software interfaces. ISO/IEC 11404:2007 defines structural notions for the specification of other non-primitive datatypes, and provides a means by which datatypes not defined herein can be defined structurally in terms of the GPDs defined herein. ISO/IEC 11404:2007 defines a partial terminology for implementation notions of datatypes and provides for the use of this terminology in the definition of datatypes. The primary purpose of this terminology is to identify common implementation notions associated with datatypes and to distinguish them from conceptual notions. ISO/IEC 11404:2007 specifies the required elements of mappings between the GPDs and the datatypes of some other language. ISO/IEC 11404:2007 does not specify the precise form of a mapping, but rather the required information content of a mapping.

Status
Not Published
Current Stage
5000 - FDIS registered for formal approval
Start Date
29-Apr-2025
Completion Date
28-Feb-2025

Buy Documents

Draft

ISO/IEC FDIS 11404 - Information technology — General-purpose datatypes (GPD)/21/2024

Release Date:21-Jun-2024
English language (100 pages)
sale 15% off
sale 15% off

Overview

ISO/IEC FDIS 11404:2024 - Information Technology - General-Purpose Datatypes (GPD) is an international standard developed by ISO and IEC for specifying a comprehensive nomenclature and shared semantics for commonly used datatypes in programming languages and software interfaces. The primary goal of this standard is to provide a universal reference model for types, ensuring interoperability, consistency, and clarity in datatype use across diverse programming languages, data interchange standards, and technology environments.

ISO/IEC 11404 defines both primitive datatypes (such as Boolean, Integer, and Character) and non-primitive datatypes (such as aggregates, records, sets, and sequences) in a way that is independent of specific programming languages. This standard facilitates the formal specification of data elements, value domains, and metadata, and aids in mapping between various datatype systems.

Key Topics

  • Datatype Concepts:

    • Distinction between conceptual (abstract) datatypes, structural organization (combination of component types), and implementation representation (rules for representation in specific environments).
    • Support for a wide range of common primitive and non-primitive datatypes.
  • Datatype Specification Language:

    • A formal framework for defining and extending datatypes.
    • Enables the creation of new types and the specification of custom datatypes based on general-purpose datatypes.
  • Extensibility and Aggregation:

    • Mechanisms for extending existing types and supporting aggregates, including structured and semi-structured data.
    • Provisions to handle specialized features like optional components, recursive structures, and conformance for aggregates.
  • Mappings and Interoperability:

    • Guidelines for mapping between general-purpose datatypes and those of programming languages, interface languages, or metadata frameworks.
    • Identifies required information content for any mapping, without locking into a specific format.
  • Data Longevity and Versioning:

    • Supports marking obsolete or reserved features for version control and migration, enabling smooth transitions across software versions and technology stacks.

Applications

ISO/IEC 11404 delivers significant practical value in several areas of information technology:

  • Programming Language Interoperability:

    • Acts as a bridge for type systems among different programming languages, making binding for services and APIs language-independent.
    • Facilitates seamless interface specification for libraries and components.
  • Metadata Registries and Data Modeling:

    • Provides the foundational datatypes for the formal specification of metadata and value domains, enhancing consistency in data modeling, data exchange, and semantic integration.
  • Software and Data Service Interfaces:

    • Underpins the type definitions for APIs, protocols, and schema specifications, including XML and other data representation standards.
    • Supports the description and mapping of complex and customized data structures.
  • Systems and Platform Integration:

    • Simplifies cross-platform system orchestration, database migration, and integration scenarios by harmonizing the semantic representation of data.
  • Emerging Technologies:

    • Incorporates new datatypes (e.g., float of various precisions) for optimized machine learning, data analytics, and AI applications.

Related Standards

  • ISO/IEC 11179-3 - Metadata registries, provides guidelines for metadata and value domain specifications relying on datatypes.
  • ISO/IEC 9593-1 - Language bindings for graphics systems, historically referenced in standardizing datatype interoperability.
  • ISO/IEC JTC 1 standards - Suite of information technology standards for data management, interchange, and computational systems.
  • Various programming language standards - Each standard may define mappings from its own type system to the GPD framework set forth in ISO/IEC 11404.

Keywords: General-purpose datatypes, ISO/IEC 11404, programming language interoperability, software interfaces, datatype specification, data modeling, metadata, API standardization, data integration, datatype mapping, cross-platform data, primitive types, non-primitive types, extensibility, versioning, international standards in IT.

Relations

Effective Date
07-Jul-2022

Buy Documents

Draft

ISO/IEC FDIS 11404 - Information technology — General-purpose datatypes (GPD)/21/2024

Release Date:21-Jun-2024
English language (100 pages)
sale 15% off
sale 15% off

Get Certified

Connect with accredited certification bodies for this standard

BSI Group

BSI (British Standards Institution) is the business standards company that helps organizations make excellence a habit.

UKAS United Kingdom Verified

NYCE

Mexican standards and certification body.

EMA Mexico Verified

Sponsored listings

Frequently Asked Questions

ISO/IEC FDIS 11404 is a draft published by the International Organization for Standardization (ISO). Its full title is "Information technology — General-purpose datatypes (GPD)". This standard covers: ISO/IEC 11404:2007 specifies the nomenclature and shared semantics for a collection of datatypes commonly occurring in programming languages and software interfaces, referred to as the General-Purpose Datatypes (GPD). It specifies both primitive datatypes, in the sense of being defined ab initio without reference to other datatypes, and non-primitive datatypes, in the sense of being wholly or partly defined in terms of other datatypes. The specification of datatypes in ISO/IEC 11404:2007 is "general-purpose" in the sense that the datatypes specified are classes of datatype of which the actual datatypes used in programming languages and other entities requiring the concept "datatype" are particular instances. These datatypes are general in nature; thus, they serve a wide variety of information processing applications. ISO/IEC 11404:2007 expressly distinguishes three notions of datatype: the conceptual, or abstract, notion of a datatype, which characterizes the datatype by its nominal values and properties; the structural notion of a datatype, which characterizes the datatype as a conceptual organization of specific component datatypes with specific functionalities; and the implementation notion of a datatype, which characterizes the datatype by defining the rules for representation of the datatype in a given environment. ISO/IEC 11404:2007 defines the abstract notions of many commonly used primitive and non-primitive datatypes which possess the structural notion of atomicity. ISO/IEC 11404:2007 does not define all atomic datatypes; it defines only those which are common in programming languages and software interfaces. ISO/IEC 11404:2007 defines structural notions for the specification of other non-primitive datatypes, and provides a means by which datatypes not defined herein can be defined structurally in terms of the GPDs defined herein. ISO/IEC 11404:2007 defines a partial terminology for implementation notions of datatypes and provides for the use of this terminology in the definition of datatypes. The primary purpose of this terminology is to identify common implementation notions associated with datatypes and to distinguish them from conceptual notions. ISO/IEC 11404:2007 specifies the required elements of mappings between the GPDs and the datatypes of some other language. ISO/IEC 11404:2007 does not specify the precise form of a mapping, but rather the required information content of a mapping.

ISO/IEC 11404:2007 specifies the nomenclature and shared semantics for a collection of datatypes commonly occurring in programming languages and software interfaces, referred to as the General-Purpose Datatypes (GPD). It specifies both primitive datatypes, in the sense of being defined ab initio without reference to other datatypes, and non-primitive datatypes, in the sense of being wholly or partly defined in terms of other datatypes. The specification of datatypes in ISO/IEC 11404:2007 is "general-purpose" in the sense that the datatypes specified are classes of datatype of which the actual datatypes used in programming languages and other entities requiring the concept "datatype" are particular instances. These datatypes are general in nature; thus, they serve a wide variety of information processing applications. ISO/IEC 11404:2007 expressly distinguishes three notions of datatype: the conceptual, or abstract, notion of a datatype, which characterizes the datatype by its nominal values and properties; the structural notion of a datatype, which characterizes the datatype as a conceptual organization of specific component datatypes with specific functionalities; and the implementation notion of a datatype, which characterizes the datatype by defining the rules for representation of the datatype in a given environment. ISO/IEC 11404:2007 defines the abstract notions of many commonly used primitive and non-primitive datatypes which possess the structural notion of atomicity. ISO/IEC 11404:2007 does not define all atomic datatypes; it defines only those which are common in programming languages and software interfaces. ISO/IEC 11404:2007 defines structural notions for the specification of other non-primitive datatypes, and provides a means by which datatypes not defined herein can be defined structurally in terms of the GPDs defined herein. ISO/IEC 11404:2007 defines a partial terminology for implementation notions of datatypes and provides for the use of this terminology in the definition of datatypes. The primary purpose of this terminology is to identify common implementation notions associated with datatypes and to distinguish them from conceptual notions. ISO/IEC 11404:2007 specifies the required elements of mappings between the GPDs and the datatypes of some other language. ISO/IEC 11404:2007 does not specify the precise form of a mapping, but rather the required information content of a mapping.

ISO/IEC FDIS 11404 is classified under the following ICS (International Classification for Standards) categories: 35.060 - Languages used in information technology. The ICS classification helps identify the subject area and facilitates finding related standards.

ISO/IEC FDIS 11404 has the following relationships with other standards: It is inter standard links to ISO/IEC 11404:2007. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.

ISO/IEC FDIS 11404 is available in PDF format for immediate download after purchase. The document can be added to your cart and obtained through the secure checkout process. Digital delivery ensures instant access to the complete standard document.

Standards Content (Sample)


DRAFT
International
Standard
ISO/IEC DIS 11404
ISO/IEC JTC 1/SC 32
Information technology — General-
Secretariat: ANSI
Purpose Datatypes (GPD)
Voting begins on:
Technologies de l'information — Types de données à but général
2024-08-16
(GPD)
Voting terminates on:
ICS: 35.060 2024-11-08
THIS DOCUMENT IS A DRAFT CIRCULATED
FOR COMMENTS AND APPROVAL. IT
IS THEREFORE SUBJECT TO CHANGE
AND MAY NOT BE REFERRED TO AS AN
INTERNATIONAL STANDARD UNTIL
PUBLISHED AS SUCH.
IN ADDITION TO THEIR EVALUATION AS
BEING ACCEPTABLE FOR INDUSTRIAL,
TECHNOLOGICAL, COMMERCIAL AND
USER PURPOSES, DRAFT INTERNATIONAL
STANDARDS MAY ON OCCASION HAVE TO
This document is circulated as received from the committee secretariat.
BE CONSIDERED IN THE LIGHT OF THEIR
POTENTIAL TO BECOME STANDARDS TO
WHICH REFERENCE MAY BE MADE IN
NATIONAL REGULATIONS.
RECIPIENTS OF THIS DRAFT ARE INVITED
TO SUBMIT, WITH THEIR COMMENTS,
NOTIFICATION OF ANY RELEVANT PATENT
RIGHTS OF WHICH THEY ARE AWARE AND TO
PROVIDE SUPPORTING DOCUMENTATION.
Reference number
© ISO/IEC 2024
ISO/IEC DIS 11404:2024(en)
DRAFT
ISO/IEC DIS 11404:2024(en)
International
Standard
ISO/IEC DIS 11404
ISO/IEC JTC 1/SC 32
Information technology — General-
Secretariat: ANSI
Purpose Datatypes (GPD)
Voting begins on:
Technologies de l'information — Types de données à but général
(GPD)
Voting terminates on:
ICS: 35.060
THIS DOCUMENT IS A DRAFT CIRCULATED
FOR COMMENTS AND APPROVAL. IT
IS THEREFORE SUBJECT TO CHANGE
AND MAY NOT BE REFERRED TO AS AN
INTERNATIONAL STANDARD UNTIL
PUBLISHED AS SUCH.
IN ADDITION TO THEIR EVALUATION AS
BEING ACCEPTABLE FOR INDUSTRIAL,
© ISO/IEC 2024
TECHNOLOGICAL, COMMERCIAL AND
USER PURPOSES, DRAFT INTERNATIONAL
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
STANDARDS MAY ON OCCASION HAVE TO
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on
This document is circulated as received from the committee secretariat. BE CONSIDERED IN THE LIGHT OF THEIR
the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below
POTENTIAL TO BECOME STANDARDS TO
WHICH REFERENCE MAY BE MADE IN
or ISO’s member body in the country of the requester.
NATIONAL REGULATIONS.
ISO copyright office
RECIPIENTS OF THIS DRAFT ARE INVITED
CP 401 • Ch. de Blandonnet 8
TO SUBMIT, WITH THEIR COMMENTS,
CH-1214 Vernier, Geneva
NOTIFICATION OF ANY RELEVANT PATENT
Phone: +41 22 749 01 11
RIGHTS OF WHICH THEY ARE AWARE AND TO
PROVIDE SUPPORTING DOCUMENTATION.
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland Reference number
© ISO/IEC 2024
ISO/IEC DIS 11404:2024(en)
© ISO/IEC 2024 – All rights reserved
ii
ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

Contents Page
Foreword . vi
0 Introduction . vii
1 Scope . 1
2 Normative references . 2
3 Terms and definitions . 2
4 Conformance . 8
4.1 Direct conformance . 8
4.2 Indirect conformance . 9
4.3 Conformance of a mapping standard . 9
4.4 GPD program conformance . 10
5 Conventions used in this International Standard . 10
5.1 Formal syntax . 10
5.2 Text conventions . 11
6 Fundamental notions . 11
6.1 Datatype . 11
6.2 Value space . 12
6.3 Datatype properties . 12
6.3.1 Equality . 13
6.3.2 Order . 13
6.3.3 Bound . 13
6.3.4 Cardinality . 14
6.3.5 Exact and approximate . 14
6.3.6 Numeric . 15
6.4 Primitive and non-primitive datatypes . 15
6.5 Datatype generator . 15
6.6 Characterizing operations . 16
6.7 Datatype families . 17
6.8 Aggregate datatypes . 17
6.8.1 Homogeneity . 17
6.8.2 Size. 18
6.8.3 Uniqueness . 18
6.8.4 Aggregate-imposed identifier uniqueness . 18
6.8.5 Aggregate-imposed ordering . 18
6.8.6 Access method . 18
6.8.7 Recursive structure . 19
6.8.8 Structured and unstructured . 19
6.8.9 Mandatory and optional components . 19
6.9 Provisions associated with datatypes . 20
7 Elements of the Datatype Specification Language . 21
7.1 IDN character-set . 22
7.2 Whitespace . 23
7.3 Lexical objects . 23
7.3.1 Identifiers . 23
7.3.2 Digit-string . 24
7.3.3 Character-literal and string-literal . 24
7.3.4 Keywords . 24
7.4 Annotations . 25
7.5 Values . 25
© ISO/IEC 2024 – All rights reserved iii

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

7.5.1 Independent values . 25
7.5.2 Dependent values . 26
7.6 GPD program text . 27
8 Datatypes . 28
8.1 Primitive datatypes . 28
8.1.1 Boolean . 30
8.1.2 State . 30
8.1.3 Enumerated . 31
8.1.4 Character . 32
8.1.5 Ordinal . 34
8.1.6 Date-and-Time . 34
8.1.7 Integer . 36
8.1.8 Rational . 36
8.1.9 Scaled . 37
8.1.10 Real . 39
8.1.11 Float . 41
8.1.12 Complex . 43
8.1.13 Void . 44
8.2 Subtypes and extended types . 45
8.2.1 Range . 45
8.2.2 Selecting . 46
8.2.3 Excluding . 46
8.2.4 Size. 47
8.2.5 Explicit subtypes . 48
8.2.6 Extended . 48
8.3 Generated datatypes . 49
8.3.1 Choice . 50
8.3.2 Pointer . 52
8.3.3 Procedure . 53
8.4 Aggregate Datatypes. 57
8.4.1 Record . 58
8.4.2 Class . 60
8.4.3 Set . 61
8.4.4 Bag . 62
8.4.5 Sequence . 64
8.4.6 Array . 65
8.4.7 Table . 68
8.5 Defined datatypes . 69
8.6 Provisions . 70
8.6.1 General parameters for provisions . 70
8.6.2 Aggregate-specific features . 74
8.6.3 Aggregate-component-identifier uniqueness . 74
8.6.4 Usage-specific features . 74
9 Declarations . 75
9.1 Type declarations . 76
9.1.1 Renaming declarations . 76
9.1.2 New datatype declarations . 77
9.1.3 New generator declarations . 77
9.2 Value declarations . 77
9.3 Termination declarations . 77
9.4 Normative datatype declarations . 78
9.5 Lexical operations . 78
9.5.1 Import. 78
9.5.2 Macro . 79
10 Defined datatypes and generators . 79
10.1 Defined datatypes . 79
10.1.1 Natural number . 80
10.1.2 Modulo . 80
© ISO/IEC 2024 – All rights reserved iv

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

10.1.3 Bit . 81
10.1.4 Bit string . 81
10.1.5 Character string . 81
10.1.6 Time interval . 83
10.1.7 Octet. 83
10.1.8 Octet string . 83
10.1.9 Private . 84
10.1.10 Object identifier . 84
10.2 Defined generators . 86
10.2.1 Stack . 86
10.2.2 Tree . 87
10.2.3 Optional . 88
11 Mappings . 89
11.1 Outward Mappings . 89
11.2 Inward Mappings . 90
11.3 Reverse Inward Mapping . 91
11.4 Support of Datatypes . 92
11.4.1 Support of equality . 92
11.4.2 Support of order . 92
11.4.3 Support of bounds . 92
11.4.4 Support of cardinality . 92
11.4.5 Support for the exact or approximate property . 93
11.4.6 Support for the numeric property . 93
11.4.7 Support for the mandatory components. 93
Annex A (informative) Character-set standards . 94
Annex B (informative) Recommendation for the placement of annotations . 96
11.5 B.1 Type-attributes . 96
11.6 B.2 Component-attributes . 96
11.7 B.3 Procedure-attributes . 97
11.8 B.4 Argument-attributes . 97
12 Annex C: (informative) Implementation notions of datatypes . 98
12.1 C.1 StorageSize . 98
12.2 C.2 Mode . 98
12.3 C.3 Floating-Point . 99
12.4 C.4 Fixed-Point . 99
12.5 C.5 Tag . 100
12.6 C.6 Discriminant . 100
12.7 C.7 StorageSequence. 100
12.8 C.8 Packed . 100
12.9 C.9 Alignment . 100
12.10 C.10 Form . 100

© ISO/IEC 2024 – All rights reserved v

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

1 Foreword
2 ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
3 Commission) form the specialized system for worldwide standardization. National bodies that are
4 members of ISO or IEC participate in the development of International Standards through technical
5 committees established by the respective organization to deal with particular fields of technical activity.
6 ISO and IEC technical committees collaborate in fields of mutual interest. Other international
7 organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the
8 work. In the field of information technology, ISO and IEC have established a joint technical committee,
9 ISO/IEC JTC 1.
10 International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
11 The main task of the joint technical committee is to prepare International Standards. Draft International
12 Standards adopted by the joint technical committee are circulated to the member bodies for voting.
13 Publication as an International Standard requires approval by at least 75 % of the member bodies casting
14 a vote.
15 Attention is drawn to the possibility that some of the elements of this document may be the subject of
16 patent rights. ISO shall not be held responsible for identifying any or all such patent rights.
17 ISO/IEC 11404 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
18 Subcommittee SC 32, Data management and interchange.
19 This third edition cancels and replaces the second edition (ISO/IEC 11404:2007), which has been
20 technically revised.
© ISO/IEC 2024 – All rights reserved vi

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

21 0 Introduction
22 0.1 Introduction to the third edition
23 The "float" datatype has been added to match the computational environments available in modern
24 systems, see 8.1.11. In addition, the float type of various precisions to can support optimized Machine
25 Learning (ML) calculations, classifications, and inferences.
26 0.2 Introduction to the second edition
27 This second edition of ISO/IEC 11404 incorporates recent technologies and improvements since the first
28 edition (ISO/IEC 11404:1996). The following improvements have been incorporated into the second
29 edition.
30  Title change to reflect actual usage. The use of ISO/IEC 11404 is no longer simply a tool for
31 communicating among programming languages (old title: Language-independent datatypes).
32 ISO/IEC 11404 is used for formal description of conceptual datatypes in binding (or binding-
33 independent) standards and used as formalization of metadata for data elements, data element
34 concepts, and value domains (see ISO/IEC 11179-3). The old title was potentially misleading because
35 readers might believe that ISO/IEC 11404 is only useful for programming languages. The new title,
36 General-Purpose Datatypes captures the essence of ISO/IEC 11404 and its use.
37  Incorporation of latest technologies. Provide enhancements to the use of ISO/IEC 11404 as a
38 datatype nomenclature reference for current programming languages, interface languages and data
39 representation languages, specifically Java, IDL, Express, and XML.
40  Support for semi-structured and unstructured data aggregates. Semi-structured data and unstructured
41 data includes aggregates where datatyping and navigation may be unknown or unspecified in
42 advance. For example, some systems permit "discovery" (or "introspection") of data. In some cases,
43 the datatype may be unknown in advance (e.g. at compilation time), but may be discovered and
44 processed at runtime (e.g. via datatype libraries or metadata registries).
45  Support for data longevity, versioning, and migration. There is a need to support, from a datatyping
46 perspective, obsolete and reserved features, such as data elements and permissible values
47 (enumerations and states). Marking features as "obsolete" allows processing, compilation, and
48 runtime systems to "flag" or diagnose old (deprecated) features, while still maintaining compatibility,
49 so that it is possible to support transitions from past to present. Similarly, marking features as
50 "reserved" allows processing, compilation, and runtime systems to "flag" or diagnose potential
51 incompatibilities with future systems, so that it is possible to support transitions from present to future.
52  Extensibility of datatypes and value spaces. There is a need to support some kind of extensibility
53 concept. For example: (1) a GPD specification of an aggregate contains the elements A and B. (2) An
54 application creates an aggregate with the elements A, B, and C. (3) Are the application's "extensions"
55 of the aggregate acceptable/in conformity with the GPD specification in (1)? The answer to (3) is
56 dependent upon the intent and design of the specification in (1): in some cases extensions are
57 permitted, in some cases extensions are not permitted. The extensibility concept would allow the user
58 of GPD datatypes to describe the kind of extensions permitted. This feature is particularly important in
59 (a) data conformance and (b) application runtime environments that permit "discovery" or
60 "introspection". This feature is available via the "provision()" capability.
61 Features that are not incorporated within GPD include the following:
62  Namespace capability. Given the larger number of declarations, a namespace capability is necessary.
© ISO/IEC 2024 – All rights reserved vii

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

63  Data representation. Although these features are a part of GPD annotations, there is no
64 standardization of data representation in these annotations. This step is an important link for data
65 interoperability.
67 0.3 Introduction to the first edition (ISO/IEC 11404:1996)
68 Many specifications of software services and applications libraries are, or are in the process of becoming,
69 International Standards. The interfaces to these libraries are often described by defining the form of
70 reference, e.g. the “procedure call”, to each of the separate functions or services in the library, as it must
71 appear in a user program written in some standard programming language (Fortran, COBOL, Pascal,
72 etc.). Such an interface specification is commonly referred to as the “ binding of ”,
73 e.g. the “Fortran binding of PHIGS” (ISO/IEC 9593-1:1990, Information processing systems — Computer
74 graphics — Programmer’s Hierarchical Interactive Graphics System (PHIGS) language bindings — Part 1:
75 FORTRAN).
76 This approach leads directly to a situation in which the standardization of a new service library
77 immediately requires the standardization of the interface bindings to every standard programming
78 language whose users might reasonably be expected to use the service, and the standardization of a new
79 programming language immediately requires the standardization of the interface binding to every standard
80 service package which users of that language might reasonably be expected to use. To avoid this n-to-m
81 binding problem, ISO/IEC JTC 1, Information technology assigned to SC 22 the task of developing an
82 International Standard for language-independent procedure calling and a parallel International Standard
83 for language-independent datatypes, which could be used to describe the parameters to such procedures.
84 This International Standard provides the specification for the language-independent datatypes. It defines a
85 set of datatypes, independent of any particular programming language specification or implementation,
86 that is rich enough so that any common datatype in a standard programming language or service package
87 can be mapped to some datatype in the set.
88 The purpose of this International Standard is to facilitate commonality and interchange of datatype
89 notions, at the conceptual level, among different languages and language-related entities. Each datatype
90 specified in this International Standard has a certain basic set of properties sufficient to set it apart from
91 the others and to facilitate identification of the corresponding (or nearest corresponding) datatype to be
92 found in other standards. Hence, this International Standard provides a single common reference model
93 for all standards which use the concept datatype. It is expected that each programming language standard
94 will define a mapping from the datatypes supported by that programming language into the datatypes
95 specified herein, semantically identifying its datatypes with datatypes of the reference model, and thereby
96 with corresponding datatypes in other programming languages.
97 It is further expected that each programming language standard will define a mapping from those
98 language-independent (LI) datatypes which that language can reasonably support into datatypes which
99 may be specified in the programming language. At the same time, this International Standard will be used,
100 among other applications, to define a “language-independent binding” of the parameters to the procedure
101 calls constituting the principal elements of the standard interface to each of the standard services. The
102 production of such service bindings and language mappings leads, in cooperation with the parallel
103 language-independent procedure calling mechanism, to a situation in which no further “
104 binding of ” documents need to be produced: Each service interface, by defining its parameters
105 using LI datatypes, effectively defines the binding of such parameters to any standard programming
106 language; and each language, by its mapping from the LI datatypes into the language datatypes,
107 effectively defines the binding to that language of parameters to any of the standard services.
© ISO/IEC 2024 – All rights reserved viii

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

110 Information technology — General-Purpose Datatypes (GPD)
111 1 Scope
112 This International Standard specifies the nomenclature and shared semantics for a collection of datatypes
113 commonly occurring in programming languages and software interfaces, referred to as the General-
114 Purpose Datatypes (GPD). It specifies both primitive datatypes, in the sense of being defined ab initio
115 without reference to other datatypes, and non-primitive datatypes, in the sense of being wholly or partly
116 defined in terms of other datatypes. The specification of datatypes in this International Standard is
117 "general-purpose" in the sense that the datatypes specified are classes of datatype of which the actual
118 datatypes used in programming languages and other entities requiring the concept "datatype" are
119 particular instances. These datatypes are general in nature; thus, they serve a wide variety of information
120 processing applications.
121 This International Standard expressly distinguishes three notions of datatype:
122  the conceptual, or abstract, notion of a datatype, which characterizes the datatype by its nominal
123 values and properties;
124  the structural notion of a datatype, which characterizes the datatype as a conceptual organization of
125 specific component datatypes with specific functionalities; and
126  the implementation notion of a datatype, which characterizes the datatype by defining the rules for
127 representation of the datatype in a given environment.
128 This International Standard defines the abstract notions of many commonly used primitive and non-
129 primitive datatypes which possess the structural notion of atomicity. This International Standard does not
130 define all atomic datatypes; it defines only those which are common in programming languages and
131 software interfaces. This International Standard defines structural notions for the specification of other
132 non-primitive datatypes, and provides a means by which datatypes not defined herein can be defined
133 structurally in terms of the GPDs defined herein.
134 This International Standard defines a partial terminology for implementation notions of datatypes and
135 provides for the use of this terminology in the definition of datatypes. The primary purpose of this
136 terminology is to identify common implementation notions associated with datatypes and to distinguish
137 them from conceptual notions.
138 This International Standard specifies the required elements of mappings between the GPDs and the
139 datatypes of some other language. This International Standard does not specify the precise form of a
140 mapping, but rather the required information content of a mapping.
© ISO/IEC 2024 – All rights reserved 1

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

145 2 Normative references
146 The following referenced documents are indispensable for the application of this document. For dated
147 references, only the edition cited applies. For undated references, the latest edition of the referenced
148 document (including any amendments) applies.
149 ISO/IEC 8601, Data elements and interchange formats — Information interchange — Representation of
150 dates and times
151 ISO/IEC 8824 (all parts), Information technology — Abstract Syntax Notation One (ASN.1)
152 ISO/IEC 10646, Information technology — Universal Multiple-Octet Coded Character Set (UCS)
153 ISO/IEC 13886, Information technology — Language Independent Procedure Calling (LIPC)
154 ISO/IEC 14977, Information technology — Syntactic metalanguage — Extended BNF
155 IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax
156 3 Terms and definitions
157 For the purposes of this document, the following terms and definitions apply.
158 NOTE These definitions might not coincide with accepted mathematical or programming language definitions of
159 the same terms.
160 3.1
161 actual parametric datatype
162 datatype appearing as a parametric datatype in a use of a datatype generator, in contrast to the formal-
163 parametric-types appearing in the definition of the datatype generator
164 3.2
165 actual parametric value
166 value appearing as a parametric value in a reference to a datatype family or datatype generator, in
167 contrast to the formal-parametric-values appearing in the corresponding definitions
168 3.3
169 aggregate datatype
170 generated datatype each of whose values is made up of values of the component datatypes, in the sense
171 that operations on all component values are meaningful
172 3.4
173 annotation
174 descriptive information unit attached to a datatype, or a component of a datatype, or a procedure (value),
175 to characterize some aspect of the representations, variables, or operations associated with values of the
176 datatype
177 3.5
178 approximate
179 property of a datatype indicating that there is not a 1-to-1 relationship between values of the conceptual
180 datatype and the values of a valid computational model of the datatype
181 3.6
182 bounded
183 property of a datatype, meaning both bounded above and bounded below
© ISO/IEC 2024 – All rights reserved 2

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

184 3.7
185 bounded above
186 property of a datatype indicating that there is a value U in the value space such that, for all values s in
187 the value space, s≤U
188 3.8
189 bounded below
190 property of a datatype indicating that there is a value L in the value space such that, for all values s in
191 the value space, s≥ L
192 3.9
193 characterizing operations
1)
194 〈datatype〉 collection of operations on, or yielding, values of the datatype that distinguish this datatype
195 from other datatypes with identical value spaces
196 3.10
197 characterizing operations
198 〈datatype generator〉 collection of operations on, or yielding, values of any datatype resulting from an
199 application of the datatype generator that distinguish this datatype generator from other datatype
200 generators and produce identical value spaces from identical parametric datatypes
201 3.11
202 component datatype
203 datatype which is a parametric datatype to a datatype generator
204 NOTE A component datatype is a datatype on which the datatype generator operates.
205 3.12
206 datatype
207 set of distinct values, characterized by properties of those values, and by operations on those values
208 3.13
209 datatype declaration
210 means provided by this International Standard for the definition of a datatype which is not itself defined by
211 this International Standard
212 3.14
213 datatype family
214 collection of datatypes which have equivalent characterizing operations and relationships, but value
215 spaces that differ in the number and identification of the individual values
216 3.15
217 datatype generator
218 generator
219 operation on datatypes, as objects distinct from their values, that generates new datatypes
220 3.16
221 defined datatype
222 datatype defined by a type-declaration.
223 3.17
224 defined generator
225 datatype generator defined by a type-declaration

1) Angle brackets indicate the subject field to which the concept belongs, in accordance with ISO 10241.
© ISO/IEC 2024 – All rights reserved 3

ISO/IEC ISODIS /IEC11404:2024(en) DIS 11404

226 3.18
227 exact
228 property of a datatype indicating that every value of the conceptual datatype is distinct from all others in
229 any valid computational model of the datatype
230 3.19
231 formal-parametric-type
232 identifier, appearing in the definition of a datatype generator, for which a datatype will be substituted in
233 any reference to a (defined) datatype resulting from the generator
234 3.20
235 formal-parametric-value
236 identifier, appearing in the definition of a datatype family or datatype generator, for which a value will be
237 substituted in any reference to a (defined) datatype in the
...