Top Qs
Timeline
Chat
Perspective
Language binding
Software library that allows using another library coded in another programming language From Wikipedia, the free encyclopedia
Remove ads
In programming and software design, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to that language).
Characteristics
Summarize
Perspective
Binding generally refers to a mapping of one thing to another. In the context of software libraries, bindings are wrapper libraries that bridge two programming languages, so that a library written for one language can be used in another language.[1] Many software libraries are written in system programming languages such as C or C++. To use such libraries from another language, usually of higher-level, such as Java, Common Lisp, Scheme, Python, or Lua, a binding to the library must be created in that language, possibly requiring recompiling the language's code, depending on the amount of modification needed.[2] However, most languages offer a foreign function interface, such as Python's and OCaml's ctypes
, and Embeddable Common Lisp's cffi
and uffi
.[3][4][5]
For example, Python bindings are used when an extant C library, written for some purpose, is to be used from Python. Another example is libsvn
which is written in C to provide an API to access the Subversion software repository. To access Subversion from within Java code, libsvnjavahl
can be used, which depends on libsvn
being installed and acts as a bridge between the language Java and libsvn
, thus providing an API that invokes functions from libsvn
to do the work.[6]
Major motives to create library bindings include software reuse, to reduce reimplementing a library in several languages, and the difficulty of implementing some algorithms efficiently in some high-level languages.
Remove ads
Runtime environment
![]() | This section needs expansion. You can help by adding to it. (November 2016) |
Object models
- Common Object Request Broker Architecture (CORBA) – cross-platform-language model
- Component Object Model (COM) – Microsoft Windows only cross-language model
- Distributed Component Object Model (DCOM) – extension enabling COM to work over networks
- Cross Platform Component Object Model (XPCOM) – Mozilla applications cross-platform model
- Common Language Infrastructure – .NET Framework cross-platform-language model
- Freedesktop.org D-Bus – open cross-platform-language model
![]() | This section needs expansion. You can help by adding to it. (November 2016) |
Virtual machines
![]() | This section needs expansion. You can help by adding to it. (November 2016) |
Remove ads
Porting
- Portable object – cross-platform-language object model definition
![]() | This section needs expansion. You can help by adding to it. (November 2016) |
See also
![]() |
- Application programming interface (API)
- Application binary interface (ABI)
- Calling convention
- Embedded SQL
- Name mangling
- Simplified Wrapper and Interface Generator (SWIG) – interface binding generator from many languages to many languages, open-source
- Wrapper function
References
External links
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads