언어 바인딩
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]할 수 있게 해 주세요.
라이브러리 바인딩을 작성하는 주요 동기에는 소프트웨어 재사용, 여러 언어로 라이브러리 재실장 감소, 일부 고급 언어로 일부 알고리즘을 효율적으로 구현하는 어려움 등이 있습니다.
런타임 환경
이 섹션은 확장해야 합니다.추가하시면 됩니다. (2016년 11월) |
오브젝트 모델
- CORBA(Common Object Request Broker Architecture)– 크로스 플랫폼 언어 모델
- 컴포넌트 오브젝트 모델(COM)– Microsoft Windows 전용 크로스 언어 모델
- Distributed Component Object Model (DCOM; 분산 컴포넌트 객체 모델)– 네트워크상에서 COM을 동작시킬 수 있는 확장 기능
- 크로스 플랫폼 컴포넌트 오브젝트 모델(XPCOM)– Mozilla 응용 프로그램 크로스 플랫폼 모델
- 공통 언어 인프라스트럭처–NET Framework 크로스 플랫폼 언어 모델
- Freedesktop.org D-Bus – 오픈 크로스 플랫폼 언어 모델
이 섹션은 확장해야 합니다.추가하시면 됩니다. (2016년 11월) |
가상 머신
이 섹션은 확장해야 합니다.추가하시면 됩니다. (2016년 11월) |
포팅
이 섹션은 확장해야 합니다.추가하시면 됩니다. (2016년 11월) |
「 」를 참조해 주세요.
이 기사는 목록 형식이지만 산문으로 읽는 것이 더 나을 것이다.(2016년 11월) |
레퍼런스
- ^ "Appendix A. Creating a language binding for cairo". Cairographics.org. Retrieved 2014-04-02.
- ^ "Standards, APIs, Interfaces and Bindings". Acm.org. Archived from the original on 2015-01-16. Retrieved 2014-04-02.
- ^ "ctypes – A foreign function library for Python". Python v3.8.3 documentation. Docs.python.org. Retrieved 2020-06-04.
- ^ Hickey, Jason; Madhavapeddy, Anil; Minsky, Yaron (2013). "Real Worl OCaml, Chapter 19. Foreign Function Interface". realworldocaml.org. Retrieved 2015-07-19.
- ^ "Introduction – CFFI User Manual". Common-lisp.net. Retrieved 2014-04-02.
- ^ "Subversion JavaHL FAQ". Subclipse.tigris.org. 2013-06-18. Retrieved 2014-04-02.
외부 링크
- JTC1/SC22/WG11 - 바인딩 기술, 언어 바인딩용 ISO 표준
- 언어 바인딩이란 무엇입니까?