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 ctypes
und Fähiges Common Lisp ‘ s cffi
und 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 libsvn
in C geschrieben, um eine API für den Zugriff auf das Subversion- Software-Repository bereitzustellen . Um aus Java-Code auf Subversion zuzugreifen, libsvnjavahl
kann verwendet werden, der von libsvn
der Installation abhängig ist und als Brücke zwischen der Sprache Java und dient libsvn
und 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
- Common Object Request Broker Architecture (CORBA) – plattformübergreifendes -Sprachmodell
-
Component Object Model (COM) – Nur sprachübergreifendes Microsoft Windows -Modell
- Distributed Component Object Model (DCOM) – Erweiterung, die es COM ermöglicht, über Netzwerke zu arbeiten
- Cross Platform Component Object Model ( XPCOM ) – plattformübergreifendes Modell von Mozilla-Anwendungen
- Common Language Infrastructure – plattformübergreifendes .NET Framework - Sprachmodell
- Freedesktop.org D-Bus – offenes plattformübergreifendes Sprachmodell
Virtuelle Maschinen
Portierung
- Portables Objekt – plattformübergreifende -sprachliche Objektmodelldefinition
Siehe auch
- Anwendungsprogrammierschnittstelle (API)
- Anwendungsbinärschnittstelle (ABI)
- Aufrufkonvention
- Eingebettetes SQL
- Namensmangel
- Simplified Wrapper and Interface Generator ( SWIG ) – Interface-Binding-Generator von vielen Sprachen zu vielen Sprachen, Open Source
- Wrapper-Funktion
Verweise
Externe Links
- JTC1/SC22/WG11 - Binding Techniques , ein ISO-Standard für Sprachbindungen
- Was ist eine Sprachbindung?