Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Библиотека программного обеспечения, позволяющая использовать другую библиотеку, написанную на другом языке программирования.
Software library that allows using another library coded in another programming language
В программировании и разработке программного обеспечения, привязка (binding) — это интерфейс прикладного программирования (API), предоставляющий вспомогательный код, специально разработанный для того, чтобы язык программирования мог использовать стороннюю библиотеку или службу операционной системы (не предназначенную для этого языка).
In programming and software design, binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to that language).
Характеристики
Связывание обычно относится к сопоставлению одной вещи с другой. В контексте программных библиотек, связывания – это оберточные библиотеки, которые обеспечивают взаимодействие между двумя языками программирования, позволяя использовать библиотеку, написанную для одного языка, в другом. Многие программные библиотеки написаны на системных языках программирования, таких как C или C++. Чтобы использовать такие библиотеки из другого языка, как правило, более высокого уровня, например Java, Common Lisp, Scheme, Python или Lua, необходимо создать связывание для этой библиотеки на целевом языке, что в некоторых случаях может потребовать перекомпиляции кода, в зависимости от объема необходимых изменений. Однако большинство языков предоставляют интерфейс для работы с функциями, написанными на других языках, такие как ctypes в Python и OCaml, а также cffi и uffi в Embeddable Common Lisp. Например, связывания для Python используются, когда существующая библиотека на C, разработанная для определенной цели, должна быть использована в Python. Другой пример – libsvn, написанная на C для предоставления API для доступа к репозиторию программного обеспечения Subversion. Для доступа к Subversion из кода Java можно использовать libsvnjavahl, которая требует установленной libsvn и выступает в качестве моста между языком Java и libsvn, предоставляя API, который вызывает функции libsvn для выполнения операций. Основные причины создания связываний библиотек включают повторное использование программного обеспечения, снижение необходимости повторной реализации библиотеки на нескольких языках и сложность эффективной реализации некоторых алгоритмов на языках высокого уровня.
Binding generally refers to a mapping of one thing to another. In the context of software libraries, bindings are wrapper libraries that bridge two programming languages, so that a library written for one language can be used in another language. Many software libraries are written in system programming languages such as C or C++. To use such libraries from another language, usually of higher level, such as Java, Common Lisp, Scheme, Python, or Lua, a binding to the library must be created in that language, possibly requiring recompiling the language's code, depending on the amount of modification needed. However, most languages offer a foreign function interface, such as Python's and OCaml's ctypes, and Embeddable Common Lisp's cffi and uffi. For example, Python bindings are used when an extant C library, written for some purpose, is to be used from Python. Another example is libsvn which is written in C to provide an API to access the Subversion software repository. To access Subversion from within Java code, libsvnjavahl can be used, which depends on libsvn being installed and acts as a bridge between the language Java and libsvn, thus providing an API that invokes functions from libsvn to do the work. Major motives to create library bindings include software reuse, to reduce reimplementing a library in several languages, and the difficulty of implementing some algorithms efficiently in some high level languages.