Application binary interface: Difference between revisions

Content deleted Content added
top: Re-worded and streamlined.
the the -> the (eliminated duplication)
Line 4:
In [[computer software]], an '''application binary interface''' ('''ABI''') is an [[interface (computing)|interface]] between two program modules; often, one of these modules is a [[Library (computing)|library]] or [[operating system]] facility, and the other is a program that is being run by a user.
 
An ''ABI'' defines how data structures or computational routines are accessed in [[machine code]], which is a low-level, hardware-dependent format; in contrast, an [[Application programming interface|''API'']] defines this access in [[source code]], which is a relatively high-level, relatively hardware-independent, often [[human-readable]] format. A common aspect of an ABI is the the [[calling convention]], which determines how data is provided as input to or read as output from computational routines; examples are the [[x86 calling conventions]].
 
Adhering to an ABI (which may or may not be officially standardized) is usually the job of a [[compiler]], operating system, or library author; however, an application programmer may have to deal with an ABI directly when writing a program in a mix of programming languages, which can be achieved by using [[foreign function call]]s.