En programmation et en conception de logiciels , une liaison est une interface de programmation d'application (API) qui fournit un code de liaison spécifiquement conçu pour permettre à un langage de programmation d'utiliser une bibliothèque étrangère ou un service de système d'exploitation (qui n'est pas natif de ce langage).
Caractéristiques
La liaison fait généralement référence à une correspondance entre une chose et une autre. Dans le contexte des bibliothèques logicielles , les liaisons sont des bibliothèques wrapper qui relient deux langages de programmation , de sorte qu'une bibliothèque écrite pour un langage peut être utilisée dans un autre langage. De nombreuses bibliothèques logicielles sont écrites dans des langages de programmation système tels que C ou C++ . Pour utiliser ces bibliothèques à partir d'un autre langage, généralement de niveau supérieur , comme Java , Common Lisp , Scheme , Python ou Lua , une liaison à la bibliothèque doit être créée dans ce langage, ce qui peut nécessiter de recompiler le code du langage, en fonction de la quantité de modifications nécessaires. Cependant, la plupart des langages offrent une interface de fonction étrangère , comme Python et OCaml ,ctypes et Common Lisp et Embeddable . cffi[ uffi3
Par exemple, les liaisons Python sont utilisées lorsqu'une bibliothèque C existante, écrite dans un but précis, doit être utilisée à partir de Python. Un autre exemple est libsvnqui est écrit en C pour fournir une API permettant d'accéder au référentiel de logiciels Subversion . Pour accéder à Subversion à partir du code Java, peut être utilisé, qui dépend de son installation et agit comme un pont entre le langage Java et , fournissant ainsi une API qui invoque des fonctions de pour effectuer le travail. libsvnjavahllibsvnlibsvnlibsvn
Les principales motivations pour créer des liaisons de bibliothèque incluent la réutilisation de logiciels , la réduction de la réimplémentation d'une bibliothèque dans plusieurs langages et la difficulté d'implémenter efficacement certains algorithmes dans certains langages de haut niveau.
Environnement d'exécution
Modèles d'objets
- Common Object Request Broker Architecture (CORBA) – modèle multi-plateforme et multilingue
- Modèle d'objet composant (COM) – Modèle multilingue uniquement pour Microsoft Windows
- Modèle d'objet de composant distribué (DCOM) – extension permettant à COM de fonctionner sur des réseaux
- Modèle d'objet de composant multiplateforme ( XPCOM ) – Modèle multiplateforme des applications Mozilla
- Infrastructure de langage commune – Modèle de langage multiplateforme .NET Framework
- Freedesktop.org D-Bus – modèle de langage multiplateforme ouvert
Machines virtuelles
Portage
- Définition d'un modèle d' objet portable et multiplateforme en langage