Wiązanie językowe
W programowaniu i projektowaniu oprogramowania powiązanie jest interfejsem programowania aplikacji (API), który zapewnia kod kleju stworzony specjalnie w celu umożliwienia językowi programowania korzystania z obcej biblioteki lub usługi systemu operacyjnego (takiej, która nie jest natywna dla tego języka).
Charakterystyka
Wiązanie ogólnie odnosi się do mapowania jednej rzeczy na drugą. W kontekście bibliotek oprogramowania powiązania to biblioteki opakowujące , które łączą dwa języki programowania , dzięki czemu biblioteka napisana dla jednego języka może być używana w innym języku. Wiele bibliotek oprogramowania jest napisanych w systemowych językach programowania, takich jak C lub C++ . Aby korzystać z takich bibliotek z innego języka, zwykle wyższego poziomu , takich jak Java , Common Lisp , Scheme , Python lub Lua , należy utworzyć powiązanie z biblioteką w tym języku, co może wymagać ponownej kompilacji kodu języka, w zależności od ilości potrzebnych modyfikacji. Jednak większość języków oferuje interfejs funkcji obcych , taki jak ctypes Pythona i OCamla oraz cffi i
uffi Embeddable
Common Lisp .
Na przykład powiązania Pythona są używane, gdy istniejąca biblioteka C, napisana w jakimś celu, ma być używana z Pythona. Innym przykładem jest biblioteka libsvn
napisana w języku C w celu udostępnienia interfejsu API umożliwiającego dostęp do repozytorium oprogramowania Subversion . Aby uzyskać dostęp do Subversion z poziomu kodu Java, można użyć biblioteki libsvnjavahl , która zależy od
zainstalowanej biblioteki libsvn i działa jako pomost między językiem Java i
libsvn
, zapewniając w ten sposób interfejs API, który wywołuje funkcje z biblioteki libsvn
w celu wykonania pracy.
Główne motywy tworzenia powiązań bibliotek obejmują ponowne wykorzystanie oprogramowania , ograniczenie ponownego wdrażania biblioteki w kilku językach oraz trudności w skutecznym wdrażaniu niektórych algorytmów w niektórych językach wysokiego poziomu.
Środowisko uruchomieniowe
Modele obiektów
- Common Object Request Broker Architecture (CORBA) – model międzyplatformowy i językowy
-
Component Object Model (COM) — model międzyjęzykowy dostępny tylko w systemie Microsoft Windows
- Distributed Component Object Model (DCOM) – rozszerzenie umożliwiające COM pracę w sieciach
- Wieloplatformowy model obiektowy komponentów ( XPCOM ) — wieloplatformowy model aplikacji Mozilli
- Common Language Infrastructure – wieloplatformowy model językowy .NET Framework
- Freedesktop.org D-Bus – otwarty , wieloplatformowy model językowy
Wirtualne maszyny
Portowanie
- Obiekt przenośny – wieloplatformowo -językowa definicja modelu obiektowego
Zobacz też
- Interfejs programowania aplikacji (API)
- Binarny interfejs aplikacji (ABI)
- Konwencja dzwonienia
- Wbudowany SQL
- Zniekształcenie nazwy
- Uproszczony Wrapper and Interface Generator ( SWIG ) - generator powiązań interfejsów z wielu języków na wiele języków, open-source
- Funkcja owijania
Linki zewnętrzne
- JTC1/SC22/WG11 - Binding Techniques , norma ISO dotycząca powiązań językowych
- Co to jest wiązanie językowe?