Interested Article - Интерфейс внешних функций

Интерфейс внешних функций ( англ. Foreign Function Interface, FFI ) — это механизм, с помощью которого программа, написанная на одном языке программирования , может вызывать подпрограммы или использовать услуги, написанные или скомпилированные на другом языке. FFI часто используется в контекстах, где производятся вызовы из бинарной динамически подключаемой библиотеки .

Термин происходит из спецификации для Common Lisp , которая явно ссылается на функцию языка программирования, позволяющую производить вызовы между языками как таковые [ источник не указан 190 дней ] ; этот термин также часто официально используется в документации интерпретатора и компилятора Haskell , Rust , Python , OCaml и LuaJIT (Lua) . Другие языки используют другую терминологию: в документации по языку программирования Ада говорится о « en », в то время как Java называет свой интерфейс Java Native Interface или en . Интерфейс внешней функции стал общим термином для механизмов, предоставляющих такие услуги.

Связывание одного программного языка с другим является непростой задачей. Язык, для которого создаётся интерфейс к другому языку, должен разбираться в соглашениях вызова, системе типов , структурах данных , механизмах выделения памяти и методов линковки языка-цели для корректной работы. Требуется тщательно согласовать семантику обоих языков, чтобы они могли корректно понимать передаваемые между ними данные.

Кроме того, добавление FFI к типобезопасному языку потенциально расширяет набор операций, которые могут нарушить безопасность тонкими и сложными для обнаружения способами.

Примечания

  1. . HaskellWiki . Дата обращения: 19 июня 2015.
  2. . Дата обращения: 1 апреля 2021.
  3. . OCamlverse .
  4. Heintz, Joachim. . — Newcastle upon Tyne : Cambridge Scholars Publishing, 2013. — ISBN 978-1-4438-5122-0 .
  5. .
  6. Furr, Michael; Foster, Jeffrey S. (2005). . SIGPLAN Not . Association for Computing Machinery. 40 (6): 62—72. doi : . ISSN .

Литература

  • Bryan O'Sullivan, John Goerzen, Donald Bruce Stewart. Chapter 17. Interfacing with C: The FFI // Real World Haskell (англ.) . — O'Reilly Media, Inc., 2008. — ISBN 9780596514983 .
Источник —

Same as Интерфейс внешних функций