Language binding

Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.

Application programming interface 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 binding
Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.

93 related topics

Relevance

Apache Subversion

Software versioning and revision control system distributed as open source under the Apache License.

Software versioning and revision control system distributed as open source under the Apache License.

Language bindings for C#, PHP, Python, Perl, Ruby, and Java.

A diagram from 1978 proposing the expansion of the idea of the API to become a general programming interface, beyond application programs alone.

API

"Api.php" redirects here.

"Api.php" redirects here.

A diagram from 1978 proposing the expansion of the idea of the API to become a general programming interface, beyond application programs alone.
Although the people who coined the term API were implementing software on a Univac 1108, the goal of their API was to make hardware independent programs possible.

Language bindings are also APIs.

A high-level comparison of in-kernel and kernel-to-userspace APIs and ABIs

Component Object Model

Binary-interface standard for software components introduced by Microsoft in 1993.

Binary-interface standard for software components introduced by Microsoft in 1993.

A high-level comparison of in-kernel and kernel-to-userspace APIs and ABIs

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.

The source code for a simple computer program written in the C programming language. The gray lines are comments that help explain the program to humans in a natural language. When compiled and run, it will give the output "Hello, world!".

Foreign function interface

Mechanism by which a program written in one programming language can call routines or make use of services written in another.

Mechanism by which a program written in one programming language can call routines or make use of services written in another.

The source code for a simple computer program written in the C programming language. The gray lines are comments that help explain the program to humans in a natural language. When compiled and run, it will give the output "Hello, world!".

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).

Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.

Glue code

Executable code that serves solely to "adapt" different parts of code that would otherwise be incompatible.

Executable code that serves solely to "adapt" different parts of code that would otherwise be incompatible.

Ada Lovelace, whose notes added to the end of Luigi Menabrea's paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history's first computer programmer.

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.

Illustration of the autogeneration of the infrastructure code from an interface defined using the CORBA IDL

Common Object Request Broker Architecture

Standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms.

Standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms.

Illustration of the autogeneration of the infrastructure code from an interface defined using the CORBA IDL

Language binding

Lua (programming language)

Lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications.

Lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications.

Prewritten Lua bindings exist for most popular programming languages, including other scripting languages.

Python (programming language)

High-level, interpreted, general-purpose programming language.

High-level, interpreted, general-purpose programming language.

The designer of Python, Guido van Rossum, at OSCON 2006
The standard type hierarchy in Python 3
Python Powered

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.

An example of two components expressed in UML 2.0. The checkout component, responsible for facilitating the customer's order, requires the card processing component to charge the customer's credit/debit card (functionality that the latter provides).

XPCOM

Cross-platform component model from Mozilla.

Cross-platform component model from Mozilla.

An example of two components expressed in UML 2.0. The checkout component, responsible for facilitating the customer's order, requires the card processing component to charge the customer's credit/debit card (functionality that the latter provides).

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.

Browsing the existing bus names, objects, interfaces, methods and signals in a D-Bus bus using D-Feet

D-Bus

In computing, D-Bus (short for "Desktop Bus" )

In computing, D-Bus (short for "Desktop Bus" )

Browsing the existing bus names, objects, interfaces, methods and signals in a D-Bus bus using D-Feet
Example of one-to-one request-response message exchange to invoke a method over D-Bus. Here the client process invokes the SetFoo method of the /org/example/object1 object from the service process named org.example.foo (or :1.14) in the bus.
The dbus-daemon plays a significant role in modern Linux graphical desktop environments.
kdbus is implemented as a character device driver. All communication between processes take place over special character device nodes in  (cf. devfs).

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