CSA - CAN/CSA-ISO/IEC 10514-1-00
Information Technology - Programming Languages - Part 1: Modula-2, Base Language
| Organization: | CSA |
| Publication Date: | 1 March 2000 |
| Status: | inactive |
| Page Count: | 729 |
| ICS Code (Languages used in information technology): | 35.060 |
scope:
Introduction
This part of ISO /IEC 10514, Modula-2 (Base language), provides a specification of the form and meaning of Modula-2 programs, and by reference to that specification lays down requirements for Modula-2 implementations.
Modula-2 is a general-purpose programming language, characterized by modules that provide data and procedure encapsulation and hiding. It provides facilities for concurrent programming based on coroutines, and includes facilities for low-level programming. Modula-2 is, therefore, suitable for systems programming. Facilities such as input/output, mathematical operations and string processing are made available through library modules.
Modula-2 is a descendent of Modula whose ancestor is Pascal. All three languages were devised by Professor Niklaus Wirth, ETH, Zurich, Switzerland. The first description of Modula-2 was published in 1980. The language became popular during the early 1980s and many implementations were developed. Because of different interpretations of various descriptions of Modula-2, significant differences in implementations appeared, and in 1984 a group of Modula-2 proponents formed a BSI panel to develop a standard. The BSI panel successfully proposed a new work item to ISO, and the ISO working group met for the first time in 1987. In 1989 the first draft of this standard was published, and in 1992 the second committee draft was published. The base documents for the formulation of this part of ISO/IEC 10514 were the various editions of Programming in Modula-2 by Niklaus Wirth, published by Springer-Verlag.
This part of ISO /IEC 10514 contains a formal model of Modula-2; for the sake of generality, consistency, and precision, differences have been introduced between the model and the third edition of Professor Wirth's book Programming in Modula-2 and these are identified either as 'clarifications' or 'changes'. During the standardization of Modula-2 it was recognized that users of the language were demanding extensions to the language devised by Professor Wirth and that implementors were responding by providing them. Several changes and extensions have, therefore, been made in order to prevent further divergence, and to ensure consistency and coherence.
This part of ISO /IEC 10514 uses a variety of notations to specify the requirements contained in it. A standard syntactic metalanguage is used for specifiying lexical and syntactic structures. The Vienna Development MethodSpecification Language (VDM-SL), which is based upon conventional mathematics, is used to define the semantics of the language in a mathematically rigorous manner. In addition, the semantics of the Modula-2 language, system modules and standard library are also specified using natural language, albeit in a form that is possibly ambiguous. It is intended that the corresponding VDM-SL resolves any such ambiguity. If the natural language requirements and those expressed in the VDM-SL conflict, then there is a mistake in this standard. In many cases, small details of the language semantics may only be resolved by reference to the VDM-SL; by this means the natural language description has been kept relatively simple. A number of typographic and stylistic conventions have been adopted in order to make the natural language description succinct.
The definitions of key terms used in this part of ISO/IEC 10514 are expressed in natural language, with references to VDM-SL where appropriate. The requirements for conforming implementations are given in natural language, with references to VDM-SL where appropriate.
The development of large parts of the formal specification of the semantics of Modula-2 in this part of ISO /IEC 10514 was sponsored by the U.K. Alvey Research Programme. The Alvey sponsored work was carried out at Leicester University Computer Studies Department in collaboration with BSI QA Software Engineering Department.
Document History