Language binding
In computing, a binding from a programming language to a library or OS service is an API providing that service in the language.
Many software libraries are written in systems programming languages such as C or C++. To use these libraries from another (usually higher-level) language such as Java, Common Lisp, Python or Lua, a binding to the library must be created in that language possibly requiring the recompilation of the language's code depending on the amount of modification necessary; however most languages offer some sort of foreign functions interface like Python's ctypes and ecl's cffi, and uffi.
Software reuse is a major motivation for creating library bindings, rather than reimplementing the library in several languages. Another is the impossibility of implementing certain algorithms efficiently in high-level languages.
See also
- Application programming interface (API)
- Application Binary Interface (ABI)
- Calling convention
- Common Language Infrastructure current .NET cross-language cross-platform Object Model (managed languages only)
- Comparison of application virtual machines
- COM Microsoft Windows only cross-language Object Model
- CORBA Common Object Request Broker Architecture, cross language cross platform object model
- DCOM Distributed COM, extension making COM able to work in networks
- Embedded SQL
- Foreign function interface
- Freedesktop.org D-Bus current open cross language cross platform Object Model
- Name mangling
- SWIG - open-source interfaces bindings generator from many languages to many languages
- Portable object cross language cross platform Object Model definition
- Porting
- XPCOM Mozilla applications cross-platform Component Object Model
- Wrapper function
External links
[1] ISO standard for language bindings