Glossary · Automation software engineering and architecture
Application binary interface (ABI)
Also known as: ABI
German: Binäre Anwendungsschnittstelle (ABI)
In software engineering, an application binary interface (ABI) is the low-level interface between compiled program modules, or between a program and the operating system, that defines data layout, calling conventions, register use and binary formats. Two binaries can only work together without recompilation if they follow the same ABI.
- Software engineering
In one sentence
An ABI defines how compiled modules interact at machine level, including calling conventions, data layout and binary formats.
Example
A runtime vendor keeps the ABI of its C extension interface stable across a minor release, so customer-compiled libraries still load on the updated controller without rebuilding.
Explained in context
Context cards connect this term with others to answer one question. Also in British English and German.
How it applies
- Engineering: ABIs matter wherever compiled code is combined: native libraries loaded by a soft PLC runtime, kernel modules, drivers and plug-ins in an engineering tool. Compiler version, target architecture and compiler options can all change the ABI.
- Maintenance: A firmware or runtime update that breaks the ABI forces all dependent binaries to be rebuilt. Treat ABI changes as a Breaking change in release planning.
- Documentation: Release notes should state explicitly whether an update keeps the ABI, which toolchain versions are supported and which binaries must be recompiled. Integrators rely on this to plan field updates.
ABI vs. API
An Application programming interface (API) is defined at source level: function names, parameters and semantics. An ABI is defined at binary level. A change can keep the API identical while breaking the ABI, for example when a structure gains a field and its memory layout changes. That is why Binary compatibility must be checked separately from source compatibility.