En programación y diseño de software, un enlace es una interfaz de programación de aplicaciones (API) que proporciona código de conexión específicamente diseñado para permitir que un lenguaje de programación utilice una biblioteca externa o un servicio del sistema operativo (uno que no es nativo de ese lenguaje).
Características
El término "binding" generalmente se refiere a una correspondencia entre dos elementos. En el contexto de las bibliotecas de software, los enlaces son bibliotecas envolventes que conectan dos lenguajes de programación, de modo que una biblioteca escrita para un lenguaje pueda utilizarse en otro. [ 1 ] Muchas bibliotecas de software están escritas en lenguajes de programación de sistemas como C o C++ . Para utilizar dichas bibliotecas desde otro lenguaje, generalmente de nivel superior, como Java , Common Lisp , Scheme , Python o Lua , se debe crear un enlace a la biblioteca en ese lenguaje, lo que posiblemente requiera recompilar el código del lenguaje, dependiendo de la cantidad de modificaciones necesarias. [ 2 ] Sin embargo, la mayoría de los lenguajes ofrecen una interfaz de funciones externas , como los ctypes de Python y OCaml , y los cffi y uffi de Embeddable Common Lisp. [ 3 ] [ 4 ] [ 5 ]
Por ejemplo, se utilizan enlaces de Python cuando se necesita usar desde Python una biblioteca C existente, escrita para algún propósito. Otro ejemplo es libsvn, que está escrita en C para proporcionar una API para acceder al repositorio de software Subversion . Para acceder a Subversion desde código Java, se puede usar libsvnjavahl, que depende de que libsvn esté instalado y actúa como un puente entre el lenguaje Java y libsvn, proporcionando así una API que invoca funciones de libsvn para realizar el trabajo. [ 6 ]
Entre los principales motivos para crear enlaces de biblioteca se incluyen la reutilización de software, la reducción de la necesidad de reimplementar una biblioteca en varios lenguajes y la dificultad de implementar algunos algoritmos de manera eficiente en algunos lenguajes de alto nivel.
Modelos de objetos
- Arquitectura común de intermediación de solicitudes de objetos (CORBA): modelo de lenguaje multiplataforma
- Modelo de objetos componentes (COM): modelo multilingüe exclusivo de Microsoft Windows
- Modelo de objetos de componentes distribuidos (DCOM): extensión que permite que COM funcione a través de redes.
- Modelo de objetos de componentes multiplataforma (XPCOM): modelo multiplataforma de las aplicaciones de Mozilla
- Infraestructura de lenguaje común : modelo de lenguaje multiplataforma de .NET Framework
- Freedesktop.org D-Bus : modelo de lenguaje multiplataforma abierto
Portabilidad
- Objeto portátil : definición de modelo de objetos para lenguajes multiplataforma
Véase también
- Interfaz de programación de aplicaciones (API)
- Interfaz binaria de la aplicación (ABI)
- Convención de llamadas
- SQL incrustado
- Deformación de nombres
- Generador de interfaces y envoltorios simplificado (SWIG): generador de enlaces de interfaz de múltiples lenguajes a múltiples lenguajes, de código abierto.
- Función de envoltura
Referencias
- ↑ "Apéndice A. Creación de una vinculación de lenguaje para cairo" . Cairographics.org . Consultado el 2 de abril de 2014 .
- ↑ "Estándares, API, interfaces y enlaces" . Acm.org. Archivado del original el 16 de enero de 2015. Consultado el 30 de julio de 2026 .
- ↑ "ctypes – Una biblioteca de funciones externas para Python" . Documentación de Python v3.14.6 . Docs.python.org . Consultado el 30 de julio de 2026 .
- ↑ Hickey, Jason; Madhavapeddy, Anil; Minsky, Yaron (2013). "OCaml en el mundo real, capítulo 19. Interfaz de funciones externas" . Recuperado el 19 de julio de 2015 .
- ↑ "Introducción – Manual de usuario de CFFI" . Common-lisp.net . Consultado el 2 de abril de 2014 .
- ↑ "Preguntas frecuentes sobre Subversion JavaHL". Subclipse.tigris.org. 18 de junio de 2013.
Enlaces externos
- JTC1/SC22/WG11 - Técnicas de vinculación , una norma ISO para la vinculación de lenguajes
- ¿Qué es una vinculación lingüística?
- Compiladores
- Bibliotecas informáticas