Overview
ISO/IEC 13886:1996 - Information technology: Language‑Independent Procedure Calling (LIPC) defines a formal, language‑neutral model for procedure calls and a reference syntax for mapping language-specific call semantics to that model. The syntax - the Interface Definition Notation (IDN) - provides a way to describe procedure invocation, parameter passing, completion status and environmental issues (non‑local references and state). ISO/IEC 13886 is intended to enable mixed‑language programming, common procedure libraries, and language‑independent tools by specifying how different programming languages map their native calling conventions to a single model.
Key Topics
- Procedure calling model: A formal model of procedure invocation, execution contexts, and closures that language processors can map to/from.
- Parameter passing mechanisms: Defined calling modes (input, input/output, return behavior) and detailed parameter marshalling/unmarshalling rules including pointer and private types handling.
- Execution control and termination: Synchronous vs asynchronous calls, normal and abnormal termination, external cancellation and predefined termination conditions.
- Global state and non‑local references: Definition of boxes (containers), global symbols and global state, and how these interact across language boundaries.
- Interface Definition Notation (IDN): A reference syntax for describing interface types, datatypes, procedures, value references and imports to support cross‑language bindings.
- Conformance modes: Client mode and server mode conformance expectations for language processors.
- Annexes and mappings: Informative annexes with binding guidance, examples of parameter conventions, and an alignment overview with RPC/IDL concepts.
Applications and Who Uses It
ISO/IEC 13886 (LIPC) is practical for:
- Language designers defining standard mappings from native call semantics to a language‑independent model.
- Compiler and runtime implementers creating client/server mode bindings or mixed‑language execution environments.
- Middleware and tool vendors building IDL/IDL‑like interface tools, procedure libraries, or cross‑language stubs and skeletons.
- Systems integrators implementing heterogeneous systems where procedures are invoked across different languages or processors.
It is useful wherever consistent procedure calling semantics, parameter marshalling, and predictable cross‑language invocation behavior are required - while noting the standard does not specify transport/communication protocols or concrete parameter representations.
Related Standards
Keywords: ISO/IEC 13886, Language‑Independent Procedure Calling, LIPC, Interface Definition Notation, procedure calling model, parameter passing, mixed‑language programming, interface mapping.