Language binding

bindingsbindingboundbridge mechanismsctypesLanguage BindingslibrariesQt binding
In computing, 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).wikipedia
131 Related Articles

Application programming interface

APIAPIsapplication programming interfaces
In computing, 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).
Language bindings are also APIs.

Glue code

In computing, 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).
Instead, it often appears in code that lets existing libraries or programs interoperate, as in language bindings or foreign function interfaces such as the Java native interface, when mapping objects to a database using object-relational mapping, or when integrating two or more commercial off-the-shelf programs.

Foreign function interface

FFIdirect callingfacilities for inter-operation with C
However, most languages offer a foreign function interface, such as Python's and OCaml's, and Embeddable Common Lisp's and.
Other languages use other terminology: the Ada programming language talks about "language bindings", while Java refers to its FFI as the JNI (Java Native Interface) or JNA (Java Native Access).

Python (programming language)

PythonPython programming languagePython 2
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.
Examples of the use of this prefix in names of Python applications or libraries include Pygame, a binding of SDL to Python (commonly used to create games); PyQt and PyGTK, which bind Qt and GTK to Python respectively; and PyPy, a Python implementation originally written in Python.

XPCOM

It features multiple language bindings and interface description language (IDL) descriptions; thus programmers can plug their custom functions into the framework and connect it with other components.

Apache Subversion

SubversionSVNSubversion (SVN)
Another example is which is written in C to provide an API to access the Subversion software repository.

Lua (programming language)

LuaLua programming languageLuaJIT
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.
Prewritten Lua bindings exist for most popular programming languages, including other scripting languages.

Component Object Model

COMActiveXActiveX/COM
COM interfaces have bindings in several languages, such as C, C++, Visual Basic, Delphi, Python and several of the scripting languages implemented on the Windows platform.

Code reuse

software reusereusere-use
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.

Cross-platform software

Cross-platformPlatform independentmulti-platform
* Portable object – cross-platform-language object model definition

D-Bus

DBusGDBusD-Bus Server
Several programming language bindings for D-Bus have been developed, such as those for Java, C# and Ruby.

Comparison of application virtualization software

Comparison of application virtual machinesapplication level
* Comparison of application virtual machines

SWIG

Simplified Wrapper and Interface GeneratorSWIG (Simplified Wrapper and Interface Generator)

Programming language

programming languageslanguagedialect
In computing, 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).

Operating system

operating systemsOScomputer operating system
In computing, 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).

Library (computing)

librarylibrariessoftware library
In computing, 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). 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.

Wrapper library

wrapperwrapperswrapper libraries
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.

System programming language

systems programming languageSPLMohols
Many software libraries are written in system programming languages such as C or C++.