Jazyková vazba
Jazykové vazby (anglicky language binding), příp. 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, běž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 knihovna 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.
Motivací k tvorbě těchto rozhraní je rozšíření dostupnosti určité knihovny v dalších programovacích jazycích, případně odstranění potřeby reimplementovat a hlavně udržovat knihovnu v dalším jazyce nebo jazycích.
Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Language binding na anglické Wikipedii.