Overview
ISO/IEC TR 10034:1990 provides guidelines for the preparation of conformity clauses in programming language standards. Recognizing the diverse nature of language standards, this technical report aims to assist standard developers in crafting clear and effective conformity clauses for both processors and programs. It ensures that users can assess conformity consistently, while accounting for processor dependencies, language extensions, subsets, and error handling.
This ISO technical report is valuable for software developers, language designers, and standards committees involved in the formalization and implementation of programming languages.
Key Topics
- Conformity Clauses: Statements specifying requirements processors and programs must meet to claim adherence to a programming language standard.
- Conforming Processor Requirements: Rules for processors that correctly translate, execute, and document compliance with the language standard, including how to handle implementation-defined elements, errors, and extensions.
- Conforming Program Requirements: Criteria for programs considered conforming, such as use of only standard constructs and avoidance of non-permitted extensions or deprecated elements.
- Processor Dependencies: Identification and documentation of language features whose behavior depends on the processor or underlying system configuration.
- Handling Errors: Guidelines on how processors should report and handle errors, including whether errors are reported during compilation or execution, and how recovery should be managed.
- Extensions and Subsets: Directions for allowing language extensions and subsets, ensuring they do not conflict with the standard and are properly documented.
- Deprecated Elements: Recommendations for mechanisms warning about deprecated language features that may be removed in future versions.
- Checklist Annex: A detailed list of language features possibly dependent on processor characteristics, such as maximum program size, data limits, identifier lengths, numeric precision, and error reporting methods.
Applications
- Language Standards Development: Provides a framework for developing conformity clauses that help unify compliance assessment across implementations.
- Compiler and Interpreter Design: Assists language processor developers in understanding required documentation and behavior to claim conformance with language standards.
- Software Testing and Certification: Supports test method development by clarifying which language features and processor-dependent aspects must be considered.
- Programming Education and Documentation: Helps educators and authors explain the scope of language conformity and implications of processor dependencies or deprecated features.
- Portability Assurance: Ensures that programs and processors maintain portability by enforcing consistent handling of language subsets, extensions, and implementation-defined behavior.
Related Standards
- ISO/IEC TR 10176: Guidelines for the preparation of programming language standards - provides broader context and guidelines within which conformity clauses are prepared.
- ISO/IEC TR 9547: Programming language processors - Test methods - Guidelines for their development and acceptability - details the methods for testing language processors for conformity.
- ISO 2382: Data processing - Vocabulary - offers standardized definitions pertinent to terminology used in describing conformity clauses.
- Relevant Programming Language Standards: Various ISO standards defining programming languages (such as Ada ISO 8652, FORTRAN ISO 1539, COBOL ISO 1989) that implement or benefit from these conformity clauses guidelines.
By following ISO/IEC TR 10034:1990, standard developers and implementers ensure that programming language conformity is specified with clarity, improving software interoperability, reliability, and portability across diverse computing environments. This leads to improved trust in language compliance claims and better guidance for users assessing language implementations.