ISO/IEC 11404:2007
(Main)Information technology — General-Purpose Datatypes (GPD)
Information technology — General-Purpose Datatypes (GPD)
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.
Technologies de l'information — Types de données à but général (GPD)
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 11404
Second edition
2007-12-15
Information technology — General-
Purpose Datatypes (GPD)
Technologies de l'information — Types de données
Reference number
ISO/IEC 11404:2007(E)
©
ISO/IEC 2007
---------------------- Page: 1 ----------------------
ISO/IEC 11404:2007(E)
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.
COPYRIGHT PROTECTED DOCUMENT
© ISO/IEC 2007
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2007 – All rights reserved
---------------------- Page: 2 ----------------------
ISO/IEC 11404:2007(E)
Contents Page
Foreword. vi
0 Introduction. vii
1 Scope .1
2 Normative references .1
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.14
6.4 Primitive and non-primitive datatypes .15
6.5 Datatype generator .15
6.6 Characterizing operations .15
6.7 Datatype families .16
6.8 Aggregate datatypes .17
6.8.1 Homogeneity .17
6.8.2 Size.17
6.8.3 Uniqueness.17
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.19
7 Elements of the Datatype Specification Language .21
7.1 IDN character-set .21
7.2 Whitespace .22
7.3 Lexical objects .23
7.3.1 Identifiers.23
7.3.2 Digit-string.23
7.3.3 Character-literal and string-literal.23
7.3.4 Keywords.24
7.4 Annotations .24
7.5 Values .25
© ISO/IEC 2007 – All rights reserved iii
---------------------- Page: 3 ----------------------
ISO/IEC 11404:2007(E)
7.5.1 Independent values. 25
7.5.2 Dependent values . 26
7.6 GPD program text . 27
8 Datatypes . 27
8.1 Primitive datatypes . 28
8.1.1 Boolean . 29
8.1.2 State. 30
8.1.3 Enumerated. 31
8.1.4 Character. 32
8.1.5 Ordinal. 33
8.1.6 Date-and-Time . 34
8.1.7 Integer . 35
8.1.8 Rational . 36
8.1.9 Scaled. 37
8.1.10 Real. 38
8.1.11 Complex . 40
8.1.12 Void. 41
8.2 Subtypes and extended types . 42
8.2.1 Range . 43
8.2.2 Selecting . 43
8.2.3 Excluding . 44
8.2.4 Size . 44
8.2.5 Explicit subtypes. 45
8.2.6 Extended . 45
8.3 Generated datatypes. 46
8.3.1 Choice . 47
8.3.2 Pointer . 49
8.3.3 Procedure. 50
8.4 Aggregate Datatypes . 53
8.4.1 Record . 55
8.4.2 Class. 56
8.4.3 Set. 58
8.4.4 Bag. 59
8.4.5 Sequence . 60
8.4.6 Array . 61
8.4.7 Table. 64
8.5 Defined datatypes . 66
8.6 Provisions. 66
8.6.1 General parameters for provisions . 67
8.6.2 Aggregate-specific features. 70
8.6.3 Aggregate-component-identifier uniqueness . 70
8.6.4 Usage-specific features. 71
9 Declarations. 72
9.1 Type declarations. 72
9.1.1 Renaming declarations. 73
9.1.2 New datatype declarations. 73
9.1.3 New generator declarations. 73
9.2 Value declarations . 73
9.3 Termination declarations . 74
9.4 Normative datatype declarations . 74
9.5 Lexical operations. 74
9.5.1 Import . 74
9.5.2 Macro. 75
10 Defined datatypes and generators . 75
10.1 Defined datatypes . 75
10.1.1 Natural number. 76
10.1.2 Modulo. 76
10.1.3 Bit. 77
iv © ISO/IEC 2007 – All rights reserved
---------------------- Page: 4 ----------------------
ISO/IEC 11404:2007(E)
10.1.4 Bit string .77
10.1.5 Character string .77
10.1.6 Time interval.79
10.1.7 Octet.79
10.1.8 Octet string.79
10.1.9 Private .80
10.1.10 Object identifier.80
10.2 Defined generators .82
10.2.1 Stack .82
10.2.2 Tree .83
10.2.3 Optional .83
11 Mappings .84
11.1 Outward Mappings.85
11.2 Inward Mappings.86
11.3 Reverse Inward Mapping .87
11.4 Support of Datatypes .87
11.4.1 Support of equality .87
11.4.2 Support of order.88
11.4.3 Support of bounds.88
11.4.4 Support of cardinality.88
11.4.5 Support for the exact or approximate property.88
11.4.6 Support for the numeric property .88
11.4.7 Support for the mandatory components.88
Annex A (informative) Character-set standards.89
Annex B (informative) Recommendation for the placement of annotations.91
Annex C (informative) Implementation notions of datatypes .93
Bibliography .96
© ISO/IEC 2007 – All rights reserved v
---------------------- Page: 5 ----------------------
ISO/IEC 11404:2007(E)
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 11404 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 22, Programming languages, their environments and system software interfaces.
This second edition cancels and replaces the first edition (ISO/IEC 11404:1996), which has been technically
revised.
vi © ISO/IEC 2007 – All rights reserved
---------------------- Page: 6 ----------------------
ISO/IEC 11404:2007(E)
0 Introduction
0.1 Introduction to the second edition
This second edition of ISO/IEC 11404 incorporates recent technologies and improvements since the first
edition (ISO/IEC 11404:1996). The following improvements have been incorporated into the second edition.
⎯ Title change to reflect actual usage. The use of ISO/IEC 11404 is no longer simply a tool for
communicating among programming languages (old title: Language-independent datatypes).
ISO/IEC 11404 is used for formal description of conceptual datatypes in binding (or binding-independent)
standards and used as formalization of metadata for data elements, data element concepts, and value
domains (see ISO/IEC 11179-3). The old title was potentially misleading because readers might believe
that ISO/IEC 11404 is only useful for programming languages. The new title, General-Purpose Datatypes
captures the essence of ISO/IEC 11404 and its use.
⎯ Incorporation of latest technologies. Provide enhancements to the use of ISO/IEC 11404 as a datatype
nomenclature reference for current programming languages, interface languages and data representation
languages, specifically Java, IDL, Express, and XML.
⎯ Support for semi-structured and unstructured data aggregates. Semi-structured data and unstructured
data includes aggregates where datatyping and navigation may be unknown or unspecified in advance.
For example, some systems permit “discovery” (or “introspection”) of data. In some cases, the datatype
may be unknown in advance (e.g. at compilation time), but may be discovered and processed at runtime
(e.g. via datatype libraries or metadata registries).
⎯ Support for data longevity, versioning, and migration. There is a need to support, from a datatyping
perspective, obsolete and reserved features, such as data elements and permissible values
(enumerations and states). Marking features as “obsolete” allows processing, compilation, and runtime
systems to “flag” or diagnose old (deprecated) features, while still maintaining compatibility, so that it is
possible to support transitions from past to present. Similarly, marking features as “reserved” allows
processing, compilation, and runtime systems to “flag” or diagnose potential incompatibilities with future
systems, so that it is possible to support transitions from present to future.
⎯ Extensibility of datatypes and value spaces. There is a need to support some kind of extensibility concept.
For example: (1) a GPD specification of an aggregate contains the elements A and B. (2) An application
creates an aggregate with the elements A, B, and C. (3) Are the application's “extensions” of the
aggregate acceptable/in conformity with the GPD specification in (1)? The answer to (3) is dependent
upon the intent and design of the specification in (1): in some cases extensions are permitted, in some
cases extensions are not permitted. The extensibility concept would allow the user of GPD datatypes to
describe the kind of extensions permitted. This feature is particularly important in (a) data conformance
and (b) application runtime environments that permit “discovery” or “introspection”. This feature is
available via the “provision()” capability.
Features that are not incorporated within GPD include the following:
⎯ Namespace capability. Given the larger number of declarations, a namespace capability is necessary.
⎯ Data representation. Although these features are a part of GPD annotations, there is no standardization of
data representation in these annotations. This step is an important link for data interoperability.
© ISO/IEC 2007 – All rights reserved vii
---------------------- Page: 7 ----------------------
ISO/IEC 11404:2007(E)
0.2 Introduction to the first edition (ISO/IEC 11404:1996)
Many specifications of software services and applications libraries are, or are in the process of becoming,
International Standards. The interfaces to these libraries are often described by defining the form of reference,
e.g. the “procedure call”, to each of the separate functions or services in the library, as it must appear in a
user program written in some standard programming language (Fortran, COBOL, Pascal, etc.). Such an
interface specification is commonly referred to as the “ binding of ”, e.g. the “Fortran
binding of PHIGS” (ISO/IEC 9593-1:1990, Information processing systems — Computer graphics —
Programmer’s Hierarchical Interactive Graphics System (PHIGS) language bindings — Part 1: FORTRAN).
This approach leads directly to a situation in which the standardization of a new service library immediately
requires the standardization of the interface bindings to every standard programming language whose users
might reasonably be expected to use the service, and the standardization of a new programming language
immediately requires the standardization of the interface binding to every standard service package which
users of that language might reasonably be expected to use. To avoid this n-to-m binding problem,
ISO/IEC JTC 1, Information technology assigned to SC 22 the task of developing an International Standard for
language-independent procedure calling and a paralle
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.