Overview
ISO/IEC 11756:1999 is the International Standard that formally describes the M programming language (also referenced historically as MUMPS). The standard defines the language’s static syntax, dynamic behavior, and portability constraints so that different implementations can interoperate and application source code can be more portable.
Key topics and technical requirements
- Language structure and metalanguage: formal description of routine layout, routine heads and bodies, and the metalanguage used for the static syntax.
- Expressions and variables: detailed treatment of expression atoms, expression tails, local and global variable naming, structured system variables (e.g., *$CHARACTER, *$SYSTEM), literals, numeric and truth-value interpretation, and intrinsic/extrinsic functions.
- Commands and control flow: complete specification of command types (FOR, GOTO, IF, DO, READ, WRITE, LOCK, JOB, etc.), line/label formats, indirection and post-conditional execution.
- Routines and execution model: routine invocation and execution semantics, transaction processing (TSTART/TROLLBACK/TCOMMIT), error handling and embedded programs.
- Portability and conformance: explicit vs. implicit limits, required implementation limits (storage, command line length, number of variables, process-stack), and conformance rules for implementors and application programmers to maximize source portability.
- Character sets and device control: character set profiles, character set requirements and binding to device control functions (ANSI X3.64 / ISO 2022 style control sequences) for two‑dimensional character devices.
- Diagnostics for implementors: guidance on external routine calls, indirection, storage restrictions, formats and transaction-processing limits.
Practical applications and users
- Primary audiences:
- Language implementors building or maintaining M interpreters/compilers who must meet minimum limits and binding rules.
- Application programmers writing portable M source code that runs across implementations.
- Systems integrators, QA engineers and maintainers validating conformance, portability, and interoperability.
- Use cases:
- Defining the formal syntax and runtime semantics for legacy or new M implementations.
- Ensuring consistent transaction and error handling semantics across systems.
- Establishing portability constraints and test criteria for production M applications.
Related standards and references
- ISO/IEC 9075 (SQL) - normative reference in the document.
- ANSI X3.4 (ASCII) - character encoding reference.
- ANSI X3.64 / ISO 2022 - device-control (binding described in the standard).
Keywords: ISO/IEC 11756, M programming language, MUMPS, language standard, portability, transaction processing, intrinsic functions, character set, conformance.