언어 바인딩

Language binding

프로그래밍소프트웨어 설계에서 바인딩은 프로그래밍 언어가 외부 라이브러리 또는 운영 체제 서비스(해당 언어에 고유하지 않은 것)를 사용할 수 있도록 특별히 만들어진 글루 코드를 제공하는 애플리케이션 프로그래밍 인터페이스(API)입니다.

특성.

바인딩은 일반적으로 어떤 것을 다른 것으로 매핑하는 것을 말합니다.소프트웨어 라이브러리의 맥락에서 바인딩은 2개의 프로그래밍 언어를 브리지하는 래퍼 라이브러리입니다.그러면 한 언어용으로 작성된 라이브러리를 다른 [1]언어로 사용할 수 있습니다.많은 소프트웨어 라이브러리는 C 또는 C++와 같은 시스템 프로그래밍 언어로 작성됩니다.Java, Common Lisp, Scheme, Python 또는 Lua와 같은 다른 언어에서 이러한 라이브러리를 사용하려면 라이브러리에 대한 바인딩을 해당 언어로 생성해야 하며 필요한 [2]수정량에 따라 해당 언어의 코드를 다시 컴파일해야 할 수 있습니다.그러나 대부분의 언어는 Python이나 OCaml과 같은 외부 기능 인터페이스를 제공합니다.ctypes 임베디드 가능한 공통 리스프cffi그리고.uffi를 클릭합니다.[3][4][5]

예를 들어 Python 바인딩은 어떤 목적으로 작성된 기존 C 라이브러리를 Python에서 사용할 때 사용됩니다.또 다른 예는libsvn 서브버전소프트웨어 저장소에 액세스하기 위한 API를 제공하기 위해 C로 기술되어 있습니다.Java 코드 내에서 Subversion에 액세스하려면libsvnjavahl사용할 수 있습니다.이것은, 에 의해서 다릅니다.libsvn설치되며 Java와 Java 사이의 브리지 역할을 합니다.libsvn따라서, 에서 함수를 호출하는 API를 제공합니다.libsvn일을 [6]할 수 있게 해 주세요.

라이브러리 바인딩을 작성하는 주요 동기에는 소프트웨어 재사용, 여러 언어로 라이브러리 재실장 감소, 일부 고급 언어로 일부 알고리즘을 효율적으로 구현하는 어려움 등이 있습니다.

런타임 환경

오브젝트 모델

가상 머신

포팅

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Appendix A. Creating a language binding for cairo". Cairographics.org. Retrieved 2014-04-02.
  2. ^ "Standards, APIs, Interfaces and Bindings". Acm.org. Archived from the original on 2015-01-16. Retrieved 2014-04-02.
  3. ^ "ctypes – A foreign function library for Python". Python v3.8.3 documentation. Docs.python.org. Retrieved 2020-06-04.
  4. ^ Hickey, Jason; Madhavapeddy, Anil; Minsky, Yaron (2013). "Real Worl OCaml, Chapter 19. Foreign Function Interface". realworldocaml.org. Retrieved 2015-07-19.
  5. ^ "Introduction – CFFI User Manual". Common-lisp.net. Retrieved 2014-04-02.
  6. ^ "Subversion JavaHL FAQ". Subclipse.tigris.org. 2013-06-18. Retrieved 2014-04-02.

외부 링크