Language binding

From Wikipedia, the free encyclopedia
Revision as of 13:44, 25 September 2024 by imported>Shardul.chiplunkar (Undid revision 1044834982 by 2001:F40:905:48C4:C8AA:9600:204B:9C39 (grammar))
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description

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

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.

Runtime environment

Script error: No such module "Unsubst".

Object models

Script error: No such module "labelled list hatnote".

Script error: No such module "Unsubst".

Virtual machines

Script error: No such module "labelled list hatnote".

Script error: No such module "Unsubst".

Porting

Script error: No such module "labelled list hatnote".

Script error: No such module "Unsubst".

See also

Template:Prose Script error: No such module "Portal".

Template:Div col

Template:Div col end

References

Template:Reflist

External links

Template:Authority control


  1. REDIRECT Template:Prog-lang-stub

Template:R shell

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".