Sprachbindung - Language binding

In der Programmierung und dem Softwaredesign ist das Binden eine Anwendungsprogrammierschnittstelle (API), die Glue-Code bereitstellt , der speziell entwickelt wurde, um einer Programmiersprache die Verwendung einer fremden Bibliothek oder eines Betriebssystemdienstes zu ermöglichen (einen, der nicht für diese Sprache nativ ist).

Eigenschaften

Bindung bezieht sich im Allgemeinen auf eine Zuordnung von einem Ding zu einem anderen. Im Kontext von Softwarebibliotheken sind Bindings Wrapper-Bibliotheken , die zwei Programmiersprachen überbrücken , sodass eine für eine Sprache geschriebene Bibliothek in einer anderen Sprache verwendet werden kann. Viele Softwarebibliotheken sind in Systemprogrammiersprachen wie C oder C++ geschrieben . Um solche Bibliotheken aus einer anderen Sprache zu verwenden, normalerweise einer höheren Ebene , wie Java , Common Lisp , Scheme , Python oder Lua , muss in dieser Sprache eine Bindung zur Bibliothek erstellt werden, die möglicherweise eine Neukompilierung des Codes der Sprache erfordert , je nach erforderliche Änderungsmenge. Allerdings bieten die meisten Sprachen eine Fremdfunktionsschnittstelle , wie Python und OCaml ‚s ctypesund Fähiges Common Lisp ‘ s cffiund uffi.

Zum Beispiel Python werden Bindungen verwendet , wenn eine noch vorhandene C - Bibliothek, für eine bestimmten Zweck geschrieben, von Python verwendet werden soll. Ein weiteres Beispiel ist libsvnin C geschrieben, um eine API für den Zugriff auf das Subversion- Software-Repository bereitzustellen . Um aus Java-Code auf Subversion zuzugreifen, libsvnjavahlkann verwendet werden, der von libsvnder Installation abhängig ist und als Brücke zwischen der Sprache Java und dient libsvnund somit eine API bereitstellt, die Funktionen von aufruft libsvn, um die Arbeit zu erledigen.

Zu den Hauptmotiven, Bibliotheksbindungen zu erstellen, gehören die Wiederverwendung von Software , die Reduzierung der Neuimplementierung einer Bibliothek in mehreren Sprachen und die Schwierigkeit, einige Algorithmen effizient in einigen höheren Sprachen zu implementieren.

Laufzeitumgebung

Objektmodelle

Virtuelle Maschinen

Portierung

Siehe auch

Verweise

Externe Links