stringtranslate.com

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

В программировании и проектировании программного обеспечения привязка представляет собой интерфейс прикладного программирования (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]libsvnjavahllibsvnlibsvnlibsvn

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

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

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

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

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

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

Ссылки

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

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