ISO/IEC TR 10176:2003
(Main)Information technology — Guidelines for the preparation of programming language standards
Information technology — Guidelines for the preparation of programming language standards
ISO/IEC TR 10176:2003(E) provides guidelines for the preparation of Programming Language Standards. Standards for programming languages are developed by many committees from many countries, with many different editors supporting the effort. ISO thus considered it necessary to develop guidelines so that these standards cover at least the following subjects: Consistent terminology Consistent structure Syntax and semantics Error and exception handling Provisions of options Presentation of source programs Processor dependences Binding strategies to functional standards Conformance definition Internationalization and support of multiple languages Cultural convention related functionality Use of expanded character repertoire for identifiers User documentation The constant additions to ISO/IEC 10646, the Universal character set, necessitate timely updates of ISO/IEC TR 10176 to allow the use of local scripts and characters in programming languages. Annex A of ISO/IEC TR 10176:2003 provides such an expanded collection of characters, recommended for use in programming languages.
Technologies de l'information — Lignes directrices pour la préparation des normes des langages de programmation
General Information
Relations
Standards Content (Sample)
TECHNICAL ISO/IEC
REPORT TR
Fourth edition
2003-04-15
Information technology — Guidelines for
the preparation of programming language
standards
Technologies de l'information — Lignes directrices pour la préparation
des normes des langages de programmation
Reference number
©
ISO/IEC 2003
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 2003
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 2003 — All rights reserved
Contents Page
Foreword. iv
Introduction . v
1 Scope. 1
2 Normative references. 1
3 Terms and definitions. 1
4 Guidelines. 7
4.1 Guidelines for the form and content of standards .7
4.1.1 Guideline: The general framework . 7
4.1.2 Guideline: Definitions of syntax and semantics. 8
4.1.3 Guidelines on the use of character sets. 8
4.1.4 Guideline: Error detection requirements. 14
4.1.5 Guideline: Exception detection requirements . 17
4.1.6 Guideline: Static detection of exceptions . 19
4.1.7 Guideline: Recovery from non-fatal errors and exceptions . 20
4.1.8 Guideline: Requirements on user documentation . 20
4.1.9 Guideline: Provision of processor options . 20
4.1.10 Guideline: Processor-defined limits . 22
4.2 Guidelines on presentation. 23
4.2.1 Guideline: Terminology. 23
4.2.2 Guideline: Presentation of source programs. 24
4.3 Guidelines on processor dependence. 24
4.3.1 Guideline: Completeness of definition . 24
4.3.2 Guideline: Optional language features . 24
4.3.3 Guideline: Management of optional language features . 24
4.3.4 Guideline: Syntax and semantics of optional language features . 25
4.3.5 Guideline: Predefined keywords and identifiers . 25
4.3.6 Guideline: Definition of optional features . 25
4.3.7 Guideline: Processor dependence in numerical processing . 26
4.4 Guidelines on conformity requirements. 26
4.5 Guidelines on strategy. 26
4.5.1 Guideline: Secondary standards. 26
4.5.2 Guideline: Incremental standards . 26
4.5.3 Guideline: Consistency of use of guidelines . 27
4.5.4 Guideline: Revision compatibility. 27
4.6 Guidelines on cross-language issues . 29
4.6.1 Guideline: Binding to functional standards . 29
4.6.2 Guideline: Facilitation of binding . 29
4.6.3 Guideline: Conformity with multi-level functional standards. 30
4.6.4 Guideline: Mixed language programming . 30
4.6.5 Guideline: Common elements . 30
4.6.6 Guideline: Use of data dictionaries. 30
4.7 Guidelines on Internationalization . 30
4.7.1 Guideline: Cultural convention set switching mechanism. 30
4.7.2 Guideline: Cultural convention related functionality .31
Annex A (informative) Recommended extended repertoire for user-defined identifiers. 32
© ISO/IEC 2003 — All rights reserved iii
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.
In exceptional circumstances, the joint technical committee may propose the publication of a Technical Report
of one of the following types:
— type 1, when the required support cannot be obtained for the publication of an International Standard,
despite repeated efforts;
— type 2, when the subject is still under technical development or where for any other reason there is the
future but not immediate possibility of an agreement on an International Standard;
— type 3, when the joint technical committee has collected data of a different kind from that which is
normally published as an International Standard (“state of the art”, for example).
Technical Reports of types 1 and 2 are subject to review within three years of publication, to decide whether
they can be transformed into International Standards. Technical Reports of type 3 do not necessarily have to
be reviewed until the data they provide are considered to be no longer valid or useful.
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 TR 10176, which is a Technical Report of type 3, was prepared by Joint Technical Committee
ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments
and system software interfaces.
This fourth edition cancels and replaces the third edition (ISO/IEC 10176:2001), which has been technically
revised.
iv © ISO/IEC 2003 — All rights reserved
Introduction
Background: Over the last three decades (1966-2002), standards have been produced for a number of
computer programming languages. Each has dealt with its own language in isolation, although to some extent
the drafting committees have become more expert by learning from both the successes and the mistakes of
their predecessors.
The first edition of this Technical Report was produced during the 1980s to put together some of the
experience that had been gained to that time, in a set of guidelines, designed to ease the task of drafting
committees of programming language standards. This second edition enhances the guidelines to take into
account subsequent experiences and developments in the areas of internationalization and character sets.
This document is published as a Technical Report type 3 because the design of programming languages -
and hence requirements relating to their standardization - is still evolving fairly rapidly, and because existing
languages, both standardized and unstandardized, vary so greatly in their properties and styles that
publication as a full standard, even as a standard set of guidelines, did not seem appropriate at this time.
The need for guidelines: While each language, taken as a whole, is unique, there are many individual
features that are common to many, or even to most of them. While standardization should not inhibit such
diversity as is essential, both in the languages and in the form of their standards, unnecessary diversity is
better avoided. Unnecessary diversity leads to unnecessary confusion, unnecessary retraining, unnecessary
conversion or redevelopment, and unnecessary costs. The aim of the guidelines is therefore to help to
achieve standardization across languages and across their standards.
The existence of a guideline will often save a drafting committee from much discussion of detailed points all of
which have been discussed previously for other languages.
Furthermore the avoidance of needless diversity between languages makes it easier for programmers to
switch between one and another.
NOTE Diversity is a major problem because it uses up time and resources better devoted to the essential part, both
by makers and users of standards. Building a language standard is very expensive in resources and far too much time and
effort goes into “reinventing the wheel” and trying to solve again, from the beginning, the same problems that other
committees have faced.
However, a software writer faced with the task of building (say) a support environment (operating system facilities, utilities,
etc.) for a number of different language processors is also faced with many problems from the eventual standards. Quite
apart from the essential differences between the languages, there are to begin with the variations of layout, arrangement,
terminology, metalanguages, etc. Much worse, there are the variations between requirements of basically the same kind,
some substantial, some slight, some subtle - compounded by needless variations in the way they are specified. This
represents an immense extra burden - as does the duplication in providing different support tools for different languages
performing basically the same task.
How to use this Technical Report: This Technical Report does not seek to legislate on how programming
languages should be designed or standardized: it would be futile even to attempt that. The guidelines are, as
their name implies, intended for guidance only. Nevertheless, drafting committees are strongly urged to
examine them seriously, to consider each one with care, and to adopt its recommendation where practicable.
The guidelines have been so written that it
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.