1、INCITS/ISO/IEC 11404:20072009 (ISO/IEC 11404:2007, IDT) Information technology General-Purpose Datatypes (GPD)INCITS/ISO/IEC 11404:20072009(ISO/IEC 11404:2007,IDT)INCITS/ISO/IEC 11404:20072009 ii ITIC 2009 All rights reserved PDF disclaimer This PDF file may contain embedded typefaces. In accordance
2、 with Adobes 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 Adobes licensi
3、ng 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.
4、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. Adopted by INCITS (InterNational Committee for Information Technology Standards)
5、 as an American National Standard. Date of ANSI Approval: 3/23/2009 Published by American National Standards Institute, 25 West 43rd Street, New York, New York 10036 Copyright 2009 by Information Technology Industry Council (ITI). All rights reserved. These materials are subject to copyright claims
6、of International Standardization Organization (ISO), International Electrotechnical Commission (IEC), American National Standards Institute (ANSI), and Information Technology Industry Council (ITI). Not for resale. No part of this publication may be reproduced in any form, including an electronic re
7、trieval system, without the prior written permission of ITI. All requests pertaining to this standard should be submitted to ITI, 1250 Eye Street NW, Washington, DC 20005. Printed in the United States of America INCITS/ISO/IEC 11404:20072009 ITIC 2009 All rights reserved iii Contents Page Foreword v
8、i 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 .
9、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
10、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.
11、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 Ch
12、aracter-literal and string-literal 23 7.3.4 Keywords 24 7.4 Annotations 24 7.5 Values . 25 INCITS/ISO/IEC 11404:20072009 iv ITIC 2009 All rights reserved 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 S
13、tate 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 .
14、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
15、.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
16、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 Modul
17、o 76 10.1.3 Bit 77 INCITS/ISO/IEC 11404:20072009 ITIC 2009 All rights reserved v 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
18、 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 fo
19、r 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 notion
20、s of datatypes 93 Bibliography 96 INCITS/ISO/IEC 11404:20072009 vi ITIC 2009 All rights reserved Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that a
21、re 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 internatio
22、nal 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 th
23、e 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 le
24、ast 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
25、 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. INCITS/ISO/IEC 11404:20072009 ITIC 2009
26、 All rights reserved vii 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
27、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 forma
28、lization 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
29、 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
30、-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
31、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 elem
32、ents 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,
33、 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 ki
34、nd 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 applications extensions of the aggregate acceptable/in conformity with the GPD specification in (1)? The
35、 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 partic
36、ularly 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 de
37、clarations, 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. INCITS/ISO/IEC 11404:20072009 viii ITIC 2009
38、 All rights reserved 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
39、, 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 bind
40、ing of PHIGS (ISO/IEC 9593-1:1990, Information processing systems Computer graphics Programmers 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
41、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
42、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 langua
43、ge-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 implementatio
44、n, 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 la
45、nguages 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. Hen
46、ce, 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, seman
47、tically 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 ca
48、n 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 s
49、tandard 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