Application binary interface: Difference between revisions

Content deleted Content added
it's not an interface between binary modules. It's an interface _exposed_ by something (could call it a module, but module implies stuff that's not accurate so call it something more general like software) that is at the machine code level; not source level
Add clarification
Line 6:
An '''application binary interface''' ('''ABI''') is an [[interface (computing)|interface]] exposed by [[software]] that is defined for in-[[Process (computing)|process]] [[machine code]]. Often, the exposing software is a [[Library (computing)|library]], and the consumer is a [[computer program|program]].
 
An ABI is at a relatively low-level of [[abstraction (computer science)|abstraction]]. Interface compatibility depends on the target [[computer hardware|hardware]] and the [[software build]] [[toolchain]]. In contrast, an [[application programming interface]] (API) defines access in [[source code]] which is a relatively high-level, hardware-independent, and [[human-readable]] format. An API defines interface at the source code level, before compilation, whereas an ABI defines an interface to compiled code.
 
A common aspect of an ABI is the [[calling convention]], which determines how data is provided as input to, or read as output from, computational routines.