Que sont les liaisons de langage logiciel ?


Lorsque l'on parle de "liaisons", on entend généralement par là l'utilisation d'une interface de fonction étrangère (FFI) pour rendre une interface d'une bibliothèque écrite dans une langue donnée disponible dans une autre langue. Selon les différences entre les langues, cela peut aller d'un simple mappage superficiel des types et des valeurs à un changement majeur de la façon dont les clients interagissent avec la bibliothèque. Ainsi, l'écriture de liaisons peut être une tâche triviale ou un effort de conception majeur.


Pour illustrer le premier cas, considérons ruby-opengl, qui fournit un accès à l'API OpenGL à partir du langage de programmation Ruby. Comme le dit le tutoriel :

Les fonctions et les constantes sont nommées de la même manière que leurs homologues C : . . .


Si vous savez déjà comment utiliser OpenGL à partir du C, alors c'est un avantage, puisque votre connaissance des fonctions à utiliser et de la façon d'accomplir les tâches se traduit directement. L'écriture de telles liaisons n'est généralement pas très difficile, car elle ne nécessite pas de réfléchir à la conception de la bibliothèque ou de l'interface ; il s'agit plutôt de spécifier quels noms Ruby correspondent à quels noms C, et comment les valeurs C sont enveloppées dans des objets Ruby (dont les détails sont déterminés par la FFI Ruby). Il existe des outils qui peuvent aider à générer les wrappers nécessaires sur la base d'un fichier d'en-tête C, même si, dans de nombreux cas, il est plus judicieux de faire le travail manuellement.

.