Software Engineering과 개똥 철학?/컴퓨터 관련 용어

Foreign function interface

소혼 2011. 5. 16. 22:05
반응형
최신 glib을 빌드하려고 하니 libffi라는 라이브러리를 참조하길래 이 놈이 뭔지 알아보기로 했습니다.
참고 : http://en.wikipedia.org/wiki/Foreign_function_interface

libffi는 C 기반으로 구현된 Foreign function interface의 하나였습니다.

그리고 Foreign function interface란 하나의 언어로 쓰여진 프로그램이 다른 언어의 함수나 서비스를 사용하도록 하는 메카니즘을 말하는 것입니다.
Java의 JNI 같은 것이구요.
C언어를 위해 이와 유사한 기능을 하는 libffi도 있습니다.


관련해서 API (Application Programming Interface)는 하나의 프로그래밍 언어에서 프로그램 모듈간(라이브러리와 라이브러리, 프로그램과 라이브러리)에 정해진 인터페이스를 말합니다.

ABI는 API가 실제로 실행되는 시점에 운영체제 실행시 필요한 정보들로 이루어진 인터페이스를 말하는 거라고 알고 있습니다만, 제가 잘못 알고 있는건지 깔끔한 정의를 모르겠습니다.

혹시 아시는 분은 답글 주시고 아래는 wikipedia의 글입니다. (http://en.wikipedia.org/wiki/Application_Binary_Interface)

An ABI should not be confused with an application programming interface (API) which defines a library of routines to call, data structures to manipulate, and/or object classes to use in the construction of an application using that particular (often language specific) API.

 
반응형