Overview
ISO/IEC 10967-1:2012 - "Information technology - Language independent arithmetic - Part 1: Integer and floating point arithmetic" defines a language‑independent, parameterized model for the properties and behavior of integer and floating‑point datatypes used in numerical and mathematical programming. The standard specifies what arithmetic operations, datatype parameters and runtime information must be available to programmers, and requires documentation and notification mechanisms so numeric behavior is predictable and analyzable across platforms.
Keywords: ISO/IEC 10967-1:2012, language independent arithmetic, integer and floating point arithmetic, numeric datatypes, portability, IEC 60559, IEEE 754.
Key topics and technical requirements
- Datatype models and parameters: A parameterized description covering bounded/unbounded integers and floating‑point types (including radix‑2 and radix‑10 variants).
- Operations and semantics: Definitions for comparisons, basic arithmetic, value dissection/splitting, and conversions between numeric datatypes.
- Conformity and documentation: Requirements for platform and language processor documentation so implementers disclose arithmetic properties and parameter values.
- Notification model: Mechanisms for signaling exceptional conditions (e.g., overflow, inexact, underflow, infinities, NaNs) with alternatives such as recording indicators, altering control flow, or terminating with a message.
- Rounding and accuracy: Specification of rounding modes, rounding constants, and guidance on precision, accuracy and error propagation.
- Bindings and examples: Informative annexes include example language bindings (Ada, C, C++, Fortran, Common Lisp), sample conformity statements, and test programs for verifying platform acceptability.
- Compatibility with IEC 60559 (IEEE 754): The second edition tightens requirements to align more closely with IEC 60559 where applicable, while noting the standard does not guarantee bit‑for‑bit identical results across all platforms.
Practical applications and users
- Programming language standards committees - to express arithmetic semantics consistently.
- Compiler and runtime implementers - to expose runtime operations, parameters and correct notification behavior.
- Numerical library authors and scientific programmers - for predictable numerical behavior, conversions and error handling.
- Embedded and safety‑critical system developers - to document and verify numeric properties for certification and portability.
- Test and QA teams - to design validation tests and example programs (see Annex F) for platform acceptability.
Related standards
- IEC 60559 / IEEE 754 - floating‑point arithmetic (covered for conformity).
- ISO/IEC 10967 Parts 2 & 3 - Part 2: elementary numerical functions; Part 3: complex arithmetic and functions.
Adopting ISO/IEC 10967-1:2012 improves predictability, documentation, and portability of numeric software across diverse platforms while helping language standards define clearer arithmetic semantics.