В программировании и проектировании программного обеспечения привязка представляет собой интерфейс прикладного программирования (API), который предоставляет связующий код , специально созданный для того, чтобы язык программирования мог использовать стороннюю библиотеку или службу операционной системы (не являющуюся родной для этого языка).
Связывание обычно относится к отображению одного объекта на другой. В контексте библиотек программного обеспечения , связывания являются библиотеками-оболочками , которые связывают два языка программирования , так что библиотека, написанная для одного языка, может использоваться на другом языке. [1] Многие библиотеки программного обеспечения написаны на языках системного программирования, таких как C или C++ . Чтобы использовать такие библиотеки из другого языка, обычно более высокого уровня , такого как Java , Common Lisp , Scheme , Python или Lua , необходимо создать привязку к библиотеке на этом языке, что может потребовать перекомпиляции кода языка в зависимости от объема необходимых изменений. [2] Однако большинство языков предлагают интерфейс внешних функций , такой как Python и OCamlctypes
, а также Embeddable Common Lisp и cffi
. uffi
[ 3] [4] [5]
Например, привязки Python используются, когда существующая библиотека C, написанная для какой-либо цели, должна использоваться из Python. Другой пример — , libsvn
которая написана на C для предоставления API для доступа к репозиторию программного обеспечения Subversion . Для доступа к Subversion из кода Java можно использовать , который зависит от того, установлен ли он и действует как мост между языком Java и , тем самым предоставляя API, который вызывает функции из для выполнения работы. [6]libsvnjavahl
libsvn
libsvn
libsvn
Основными мотивами создания библиотечных привязок являются повторное использование программного обеспечения , сокращение повторной реализации библиотеки на нескольких языках, а также сложность эффективной реализации некоторых алгоритмов на некоторых языках высокого уровня.