외부 함수 인터페이스

위키백과, 우리 모두의 백과사전.

외부 함수 인터페이스(Foreign function interface, FFI)는 한 프로그래밍 언어로 작성된 프로그램이 다른 언어로 작성된 서비스를 이용할 수 있거나 그에 따른 함수를 호출할 수 있는 구조이다. 이 용어는 커먼 리스프의 사양에서 비롯되었고, 언어 간 호출이라는 언어 기능으로 명백히 가리키고 있다.[1]

또, 이 용어는 하스켈[2], 파이썬[3] 프로그래밍 언어에 의해 공식 사용된다. 그 밖의 다른 언어는 다른 용어를 사용한다. 에이다언어 바인딩에 대해서 논하며, 자바는 FFI를 자바 네이티브 인터페이스(JNI)나 자바 네이티브 액세스(JNA)로 부른다. 외부 함수 인터페이스는 이러한 서비스를 제공하는 구조를 설명하는 용어로 일반화되고 있다.

대부분의 경우 FFI는 고급 프로그래밍 언어로 정의되는데 CC++와 같이 이보다 더 저급의 프로그래밍 언어에서 구현, 정의된 서비스를 이용할 수 있다. 수많은 FFI들은 호출된 언어가 호스트 언어의 서비스도 호출할 수 있는 수단을 제공한다.

각주[편집]

  1. “CFFI User Manual”. common-lisp.org. 2015년 6월 18일에 확인함. 
  2. “FFI Introduction”. 《HaskellWiki》. 2015년 6월 19일에 확인함. Haskell's FFI is used to call functions from other languages (basically C at this point), and for C to call Haskell functions. 
  3. “CFFI documentation”. 2015년 6월 19일에 확인함. C Foreign Function Interface for Python. The goal is to provide a convenient and reliable way to call compiled C code from Python using interface declarations written in C. 

외부 링크[편집]