Language Binding

Language binding (propojování jazyků) je aplikační programové rozhraní poskytující „lepidlový“ kód umožňující programovacímu jazyku nebo systémové službě užití v jiném jazyce, než ve kterém byl původní kód napsán.

Binding běžně znamená mapování jedné věci k druhé. V případě softwarových knihoven se jedná o wrappery, které propojují dva různé jazyky tak, aby knihovna napsána v jednom jazyce mohla být použita v jazyce druhém. Spousta knihoven je psána v systémových programovacích jazycích jako je C či C++. Aby se takové knihovny daly použít v jiném jazyce, bežně vysokoúrovňovějších jako Java, Common Lisp, Python nebo Lua, rozhraní k dané knihovně musí být napsáno v daném jazyce s možností rekompilace kódu daného jazyka v závislosti na potřebných změnách. Většina jazyků umožňuje rozhraní ke svým funkcím, jako například Pythoní ctypes či cffi a uffi Common Lispu.

Například, propojování pro Python se používá, když knihovna psaná v jazyce C má být použita v Pythonu. Dalším příkladem je libsvn napsaná v jazce C, aby poskytla rozhraní pro přístup k repozitáři Subversion software. Pro přístup k Subversion z Javy lze použít libsvnjavahl, která závisí na faktu, že libsvn knihova již je nainstalována a chová se jakožto most mezi Javou a libsvn, twdy poskytuje API, které volá funkce z libsvn k provedení daného úkonu.

Většina motivuje k tvorbě těchto rozhraní, aby se zabránilo reimplementaci jedné knihovny v několika jazycích a tím pádem i potížím implementace některých algoritmů efektivně v některých vysokoúrovňových jazycích.

Reference

V tomto článku byl použit překlad textu z článku Language binding na anglické Wikipedii.