language-icon Old Web
English
Sign In

Foreign function interface

A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written in another. A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written in another. The term comes from the specification for Common Lisp, which explicitly refers to the language features for inter-language calls as such; the term is also used officially by the Haskell and Python programming languages. 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). Foreign function interface has become generic terminology for mechanisms which provide such services. The primary function of a foreign function interface is to mate the semantics and calling conventions of one programming language (the host language, or the language which defines the FFI), with the semantics and conventions of another (the guest language). This process must also take into consideration the runtime environments and/or application binary interfaces of both. This can be done in several ways:

[ "Compiler", "Haskell" ]
Parent Topic
Child Topic
    No Parent Topic