흥미롭다:뭔가 정말 흥미롭다면, 그게 흥미롭다는 이야기를 굳이쓸필요가 없다
짧은단어:쓰기도 쉽고 이해하기도 쉽다. 뜻이 같은 두 단어가 있다면 짧은 쪽을 쓰자
TistoryM에서 작성됨
흥미롭다:뭔가 정말 흥미롭다면, 그게 흥미롭다는 이야기를 굳이쓸필요가 없다
짧은단어:쓰기도 쉽고 이해하기도 쉽다. 뜻이 같은 두 단어가 있다면 짧은 쪽을 쓰자
Best Practices for Scientific Computing
하스켈을 들여다 보면 자주 보게되는 FFI에 대해 정리 9/5/2013 9:54:57 PM
Foreign function interface (FFI)은 프로그래밍 언어에서 다른 프로그래밍 언어로 정의 된 함수 등을 이용하기위한 기법이다. 주로 고급 언어에서 C / C + + 등의 함수 나 메서드를 호출하여 OS 고유의 기능 등을 이용하기 위해 사용되는 경우가 많다. FFI라는 용어는 Common Lisp의 사양에 유래,Haskell에서도 마찬가지로 FFI라는 용어가 사용되고있다. Ada 등의 언어 사이 바인딩 (또는 바인딩 language binding)이라고한다. FFI라는 용어 자체에 "함수 (Function)"라는 말이 포함되어 있지만, 많은 FFI는 단순히 다른 언어로 작성된 함수를 호출 할뿐만 아니라 개체의 메서드를 호출하거나 그 결과를 가져 하고 데이터 형식 또는 클래스를 언어간에 상호 변환 할 수있다.
FFI의 주요 기능은 호출자의 언어 (호스트 언어)와 수신자의 언어 (게스트 언어)의 호출 규칙과 의미론을 맞추는 것이이다. 주로 다음과 같은 방법 등으로 구현된다: 게스트 언어 호출되는 함수에 대해 호스트 언어에서 사용 가능한 특정 프로토콜을 구현하는 것을 요구한다 (예 : Java Native Interface). 게스트 언어의 함수를 감싸기 글루 코드를 작성하는 래퍼 라이브러리를 만든다. (예 : Haskell 98 FFI) 게스트 언어로 정의 된 함수는 호스트 언어의 기능과 의미론의 하위 집합이여야 한다 (예 : C + +에서 C 언어의 기능을 사용)
또한, FFI의 이용 및 구현에는 다음과 같은 경우에 주의가 필요하다.