stringtranslate.com

Языковая привязка

В программировании и разработке программного обеспечения привязка — это интерфейс прикладного программирования (API), который предоставляет связующий код, специально созданный для того, чтобы язык программирования мог использовать стороннюю библиотеку или службу операционной системы (не родную для этого языка).

Характеристики

Привязка обычно относится к сопоставлению одного объекта с другим. В контексте программных библиотек привязки представляют собой библиотеки-оболочки , которые соединяют два языка программирования , так что библиотеку , написанную для одного языка, можно использовать на другом языке. [1] Многие библиотеки программного обеспечения написаны на языках системного программирования, таких как C или C++ . Чтобы использовать такие библиотеки из другого языка, обычно более высокого уровня , такого как Java , Common Lisp , Scheme , Python или Lua , привязка к библиотеке должна быть создана на этом языке, возможно, требуя перекомпиляции кода языка, в зависимости от необходимое количество модификаций. [2] Однако большинство языков предлагают интерфейс внешних функций , например, Python и OCaml ,ctypes а также Embeddable Common Lisp cffiи uffi. [3] [4] [5]

Например, привязки Python используются, когда существующая библиотека C, написанная для какой-либо цели, должна использоваться из Python. Другой пример libsvnнаписан на C и предоставляет API для доступа к репозиторию программного обеспечения Subversion . Для доступа к Subversion из кода Java можно использовать код, который зависит от установки и действует как мост между языком Java и , обеспечивая тем самым API, который вызывает функции для выполнения работы. [6]libsvnjavahllibsvnlibsvnlibsvn

Основные мотивы создания привязок библиотек включают повторное использование программного обеспечения , чтобы уменьшить повторную реализацию библиотеки на нескольких языках, а также сложность эффективной реализации некоторых алгоритмов на некоторых языках высокого уровня.

Среда выполнения

Объектные модели

Виртуальные машины

Портирование

Смотрите также

Рекомендации

  1. ^ «Приложение А. Создание языковой привязки для Каира». Cairographics.org . Проверено 2 апреля 2014 г.
  2. ^ «Стандарты, API, интерфейсы и привязки». Acm.org. Архивировано из оригинала 16 января 2015 г. Проверено 2 апреля 2014 г.
  3. ^ «ctypes — зарубежная библиотека функций для Python». Документация Python v3.8.3 . Docs.python.org . Проверено 4 июня 2020 г.
  4. ^ Хикки, Джейсон; Мадхавапедди, Анил; Мински, Ярон (2013). «Real Worl OCaml, Глава 19. Интерфейс внешних функций». Realworldocaml.org . Проверено 19 июля 2015 г.
  5. ^ «Введение - Руководство пользователя CFFI» . Common-lisp.net . Проверено 2 апреля 2014 г.
  6. ^ «Часто задаваемые вопросы по Subversion JavaHL» . Subclipse.tigris.org. 18 июня 2013 г. Проверено 2 апреля 2014 г.

Внешние ссылки