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
- Status
- Published
- Publication Date
- 05-Dec-2007
- Technical Committee
- ISO/IEC JTC 1/SC 32 - Data management and interchange
- Drafting Committee
- ISO/IEC JTC 1/SC 32/WG 2 - MetaData
- Current Stage
- 9092 - International Standard to be revised
- Start Date
- 04-Jul-2022
- Completion Date
- 30-Oct-2025
Relations
- Effective Date
- 15-Apr-2008
Overview
ISO/IEC 11404:2007 - Information technology: General-Purpose Datatypes (GPD) - defines a shared nomenclature and semantics for a set of datatypes commonly used across programming languages and software interfaces. The standard specifies both primitive datatypes (defined ab initio) and non‑primitive datatypes (defined in terms of other datatypes), and it formalizes three complementary notions of datatype: conceptual (abstract), structural, and implementation. ISO/IEC 11404:2007 enables consistent datatype descriptions, supports structural construction of new datatypes from GPDs, and prescribes the required information content for mappings between GPDs and language- or platform-specific datatypes.
Key topics and technical requirements
- Datatype taxonomy: Definitions of primitive and non-primitive datatypes commonly found in programming languages and interfaces.
- Three notions of datatype:
- Abstract (conceptual) - value spaces and properties;
- Structural - composition from component datatypes;
- Implementation - representation rules in a given environment.
- Datatype properties: Equality, ordering, bounds, cardinality, numeric vs. non-numeric, exact/approximate.
- Aggregate datatypes: Records, classes, sets, bags, sequences, arrays, tables - with rules for homogeneity, size, uniqueness, ordering and access methods.
- Generated datatypes and generators: Choice, pointer, procedure, and other generators for building complex types.
- Specification language elements: Lexical conventions, identifiers, literals, annotations, declarations (type, value, termination), and normative datatype declaration forms.
- Mappings and conformance: The standard specifies required elements of a mapping between GPDs and another language’s datatypes (information content required), and defines conformance types (direct, indirect, mapping-standard conformance, and GPD program conformance).
- Extensibility: Mechanisms to define datatypes structurally in terms of the GPDs and to declare subtypes, ranges, and extensions.
Applications
- Creating language‑neutral API contracts and interface specifications for cross‑platform systems.
- Defining consistent datatype vocabularies for middleware, data interchange, and protocol design.
- Assisting compiler and tool vendors in mapping language-specific types to a common conceptual model.
- Supporting system integrators and architects who need precise datatype semantics for interoperability and validation.
Who should use it
- Standards bodies, API architects, language designers, compiler/tool implementers, middleware developers, and systems engineers focused on datatype interoperability, interface specification, and formal datatype mapping.
Related standards
- ISO/IEC 11404 complements other ISO/IEC standards addressing programming languages, data interchange, and interface description; use it as the canonical GPD vocabulary when documenting or mapping datatypes across technologies.
Frequently Asked Questions
ISO/IEC 11404:2007 is a standard 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 11404:2007 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 11404:2007 has the following relationships with other standards: It is inter standard links to ISO/IEC 11404:1996. Understanding these relationships helps ensure you are using the most current and applicable version of the standard.
You can purchase ISO/IEC 11404:2007 directly from iTeh Standards. The document is available in PDF format and is delivered instantly after payment. Add the standard to your cart and complete the secure checkout process. iTeh Standards is an authorized distributor of ISO standards.
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 2007
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.
© 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
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
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
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
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
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
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 parallel International Standard for language-independent
datatypes, which could be used to describe the parameters to such procedures.
This International Standard provides the specification for the language-independent datatypes. It defines a set
of datatypes, independent of any particular programming language specification or implementation, that is rich
enough so that any common datatype in a standard programming language or service package can be
mapped to some datatype in the set.
The purpose of this International Standard is to facilitate commonality and interchange of datatype notions, at
the conceptual level, among different languages and language-related entities. Each datatype specified in this
International Standard has a certain basic set of properties sufficient to set it apart from the others and to
facilitate identification of the corresponding (or nearest corresponding) datatype to be found in other
standards. Hence, this International Standard provides a single common reference model for all standards
which use the concept datatype. It is expected that each programming language standard will define a
mapping from the datatypes supported by that programming language into the datatypes specified herein,
semantically identifying its datatypes with datatypes of the reference model, and thereby with corresponding
datatypes in other programming languages.
It is further expected that each programming language standard will define a mapping from those language-
independent (LI) datatypes which that language can reasonably support into datatypes which may be
specified in the programming language. At the same time, this International Standard will be used, among
other applications, to define a “language-independent binding” of the parameters to the procedure calls
constituting the principal elements of the standard interface to each of the standard services. The production
of such service bindings and language mappings leads, in cooperation with the parallel language-independent
procedure calling mechanism, to a situation in which no further “ binding of ” documents
need to be produced: Each service interface, by defining its parameters using LI datatypes, effectively defines
the binding of such parameters to any standard programming language; and each language, by its mapping
from the LI datatypes into the language datatypes, effectively defines the binding to that language of
parameters to any of the standard services.
viii © ISO/IEC 2007 – All rights reserved
INTERNATIONAL STANDARD ISO/IEC 11404:2007(E)
Information technology — General-Purpose Datatypes (GPD)
1 Scope
This International Standard 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 this International Standard 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.
This International Standard 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.
This International Standard defines the abstract notions of many commonly used primitive and non-primitive
datatypes which possess the structural notion of atomicity. This International Standard does not define all
atomic datatypes; it defines only those which are common in programming languages and software interfaces.
This International Standard 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.
This International Standard 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.
This International Standard specifies the required elements of mappings between the GPDs and the datatypes
of some other language. This International Standard does not specify the precise form of a mapping, but
rather the required information content of a mapping.
2 Normative references
The following referenced documents are indispensable for the application of this document. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
document (including any amendments) applies.
ISO/IEC 8601, Data elements and interchange formats — Information interchange — Representation of dates
and times
ISO/IEC 8824 (all parts), Information technology — Abstract Syntax Notation One (ASN.1)
© ISO/IEC 2007 – All rights reserved 1
ISO/IEC 10646, Information technology — Universal Multiple-Octet Coded Character Set (UCS)
ISO/IEC 14977, Information technology — Syntactic metalanguage — Extended BNF
IETF RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax
3 Terms and definitions
For the purposes of this document, the following terms and definitions apply.
NOTE These definitions might not coincide with accepted mathematical or programming language definitions of the
same terms.
3.1
actual parametric datatype
datatype appearing as a parametric datatype in a use of a datatype generator, in contrast to the formal-
parametric-types appearing in the definition of the datatype generator
3.2
actual parametric value
value appearing as a parametric value in a reference to a datatype family or datatype generator, in contrast to
the formal-parametric-values appearing in the corresponding definitions
3.3
aggregate datatype
generated datatype each of whose values is made up of values of the component datatypes, in the sense that
operations on all component values are meaningful
3.4
annotation
descriptive information unit attached to a datatype, or a component of a datatype, or a procedure (value), to
characterize some aspect of the representations, variables, or operations associated with values of the
datatype
3.5
approximate
property of a datatype indicating that there is not a 1-to-1 relationship between values of the conceptual
datatype and the values of a valid computational model of the datatype
3.6
bounded
property of a datatype, meaning both bounded above and bounded below
3.7
bounded above
property of a datatype indicating that there is a value U in the value space such that, for all values s in the
value space, s≤U
3.8
bounded below
property of a datatype indicating that there is a value L in the value space such that, for all values s in the
value space, s≥ L
2 © ISO/IEC 2007 – All rights reserved
3.9
characterizing operations
1)
〈datatype〉 collection of operations on, or yielding, values of the datatype that distinguish this datatype from
other datatypes with identical value spaces
3.10
characterizing operations
〈datatype generator〉 collection of operations on, or yielding, values of any datatype resulting from an
application of the datatype generator that distinguish this datatype generator from other datatype generators
and produce identical value spaces from identical parametric datatypes
3.11
component datatype
datatype which is a parametric datatype to a datatype generator
NOTE A component datatype is a datatype on which the datatype generator operates.
3.12
datatype
set of distinct values, characterized by properties of those values, and by operations on those values
3.13
datatype declaration
means provided by this International Standard for the definition of a datatype which is not itself defined by this
International Standard
3.14
datatype family
collection of datatypes which have equivalent characterizing operations and relationships, but value spaces
that differ in the number and identification of the individual values
3.15
datatype generator
generator
operation on datatypes, as objects distinct from their values, that generates new datatypes
3.16
defined datatype
datatype defined by a type-declaration
3.17
defined generator
datatype generator defined by a type-declaration
3.18
exact
property of a datatype indicating that every value of the conceptual datatype is distinct from all others in any
valid computational model of the datatype
3.19
formal-parametric-type
identifier, appearing in the definition of a datatype generator, for which a datatype will be substituted in any
reference to a (defined) datatype resulting from the generator
1) Angle brackets indicate the subject field to which the concept belongs, in accordance with ISO 10241.
© ISO/IEC 2007 – All rights reserved 3
3.20
formal-parametric-value
identifier, appearing in the definition of a datatype family or datatype generator, for which a value will be
substituted in any reference to a (defined) datatype in the family or resulting from the generator
3.21
general-purpose datatype
GPD
datatype defined by this International Standard
3.22
GPD-generated datatype
GPD datatype
datatype defined by the means of datatype definition provided by this International Standard
NOTE Although “GPD datatype” expands to “general-purpose datatype datatype” and might appear redundant, it is to
be read as “general-purpose-datatype datatype”, where GPD is an adjective and datatype (standalone) is a noun.
3.23
generated datatype
datatype defined by the application of a datatype generator to one or more previously-defined datatypes
3.24
generated internal datatype
datatype defined by the application of a datatype generator defined in a particular programming language to
one or more previously-defined internal datatypes
3.25
generator declaration
means provided by this International Standard for the definition of a datatype generator which is not itself
defined by this International Standard
3.26
instruction
provision that conveys an action to be performed
[ISO/IEC Guide 2]
3.27
internal datatype
datatype whose syntax and semantics are defined by some other standard, specification, language, product,
service or other information processing entity
3.28
inward mapping
conceptual association between the internal datatypes of a language and the general-purpose datatypes
which assigns to each general-purpose datatype either a single semantically equivalent internal datatype or
no equivalent internal datatype
3.29
lower bound
value L such that, for all values s in the value space in a datatype which is bounded below,L≤ s
3.30
mandatory requirement
requirement of a normative document that must necessarily be fulfilled in order to comply with that document
NOTE 1 Adapted from the definition of “exclusive requirement” in ISO/IEC Guide 2.
NOTE 2 A “mandatory requirement” is also known as an “exclusive requirement”.
4 © ISO/IEC 2007 – All rights reserved
3.31
mapping
〈datatypes〉 formal specification of the relationship between the internal datatypes that are notions of, and
specifiable in, a particular programming language and the general-purpose datatypes specified in this
International Standard
3.32
mapping
〈values〉 corresponding specification of the relationships between values of the internal datatypes and values
of the general-purpose datatypes
3.33
meta-identifier
name of a non-terminal symbol
[ISO/IEC 14977]
NOTE See note in 5.1 concerning the context of the specialized usage of this term for describing the syntax of
ISO/IEC 11404 program text.
3.34
non-terminal symbol
〈EBNF〉 syntactic part of the language being defined
[ISO/IEC 14977]
NOTE See note in 5.1 concerning the context of the specialized usage of this term.
3.35
normative datatype
collection of specifications for datatype properties that may be simultaneously satisfied by more than one
actual datatype
3.36
normative document
document that provides rules, guidelines or characteristics for activities or their results
[ISO/IEC Guide 2]
NOTE 1 The term “normative document” is a generic term that covers such documents as standards and technical
specifications.
NOTE 2 A “document” is to be understood as any medium with information recorded on or in it, such as a paper
document or program code.
3.37
optional requirement
requirement of a normative document that must be fulfilled in order to comply with a particular option permitted
by that document
[ISO/IEC Guide 2]
NOTE An optional requirement may be either (1) one of two or more alternative requirements; or (2) an additional
requirement that must be fulfilled only if applicable and that may otherwise be disregarded.
3.38
order
mathematical relationship among values
NOTE See 6.3.2.
© ISO/IEC 2007 – All rights reserved 5
3.39
ordered
property of a datatype which is determined by the existence and specification of an order relationship on its
value space
3.40
outward mapping
conceptual association between the internal datatypes of a language and the general-purpose datatypes that
identifies each internal datatype with a single semantically equivalent general-purpose datatype
3.41
parametric datatype
datatype on which a datatype generator operates to produce a generated datatype
3.42
parametric value (1)
value which distinguishes one member of a datatype family from another
3.43
parametric value (2)
value which is a parameter of a datatype or datatype generator defined by a type-declaration
NOTE See 9.1.
3.44
primitive datatype
identifiable datatype that canno
...










Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.
Loading comments...