En programación y diseño de software , un enlace es una interfaz de programación de aplicaciones (API) que proporciona un código adhesivo creado específicamente para permitir que un lenguaje de programación utilice una biblioteca extranjera o servicio de sistema operativo (uno que no sea nativo de ese lenguaje).
Características [ editar ]
La vinculación generalmente se refiere al mapeo de una cosa a otra. En el contexto de las bibliotecas de software , los enlaces son bibliotecas contenedoras que unen dos lenguajes de programación , de modo que una biblioteca escrita para un lenguaje se puede utilizar en otro. [1] Muchas bibliotecas de software están escritas en lenguajes de programación de sistemas como C o C ++ . Para utilizar estas bibliotecas de otro lenguaje, generalmente de nivel superior , como Java , Common Lisp , Scheme , Python o Lua, se debe crear un enlace a la biblioteca en ese idioma, lo que posiblemente requiera volver a compilar el código del idioma, dependiendo de la cantidad de modificación necesaria. [2] Sin embargo, la mayoría de los idiomas ofrecen una interfaz de la función externa , tal como Python y de OCaml 's ctypes
, y insertable Common Lisp ' s cffi
y uffi
. [3] [4] [5]
Por ejemplo, los enlaces de Python se usan cuando una biblioteca C existente, escrita para algún propósito, se va a usar desde Python. Otro ejemplo es el libsvn
que está escrito en C para proporcionar una API para acceder al repositorio de software de Subversion . Para acceder a Subversion desde dentro del código Java, se puede utilizar, el cual depende de que esté instalado y actúa como un puente entre el lenguaje Java y , por lo tanto, proporciona una API que invoca funciones desde para hacer el trabajo. [6]libsvnjavahl
libsvn
libsvn
libsvn
Los motivos principales para crear enlaces de bibliotecas incluyen la reutilización de software , para reducir la reimplementación de una biblioteca en varios idiomas y la dificultad de implementar algunos algoritmos de manera eficiente en algunos lenguajes de alto nivel.
Entorno de ejecución [ editar ]
Esta sección necesita expansión . Puede ayudar agregando más . ( Noviembre de 2016 ) |
Modelos de objetos [ editar ]
- Arquitectura de agente de solicitud de objeto común (CORBA): modelo multiplataforma de idioma
- Modelo de objetos componentes (COM): modelo de lenguaje cruzado exclusivo de Microsoft Windows
- Modelo de objetos componentes distribuidos (DCOM): extensión que permite que COM funcione en redes
- Modelo de objetos componentes multiplataforma ( XPCOM ): modelo multiplataforma de aplicaciones de Mozilla
- Common Language Infrastructure - .NET Framework multiplataforma modelo -language
- Freedesktop.org D-Bus - modelo abierto multiplataforma -lenguaje
Esta sección necesita expansión . Puede ayudar agregando más . ( Noviembre de 2016 ) |
Máquinas virtuales [ editar ]
- Comparación de máquinas virtuales de aplicaciones
Esta sección necesita expansión . Puede ayudar agregando más . ( Noviembre de 2016 ) |
Portabilidad [ editar ]
- Objeto portátil : definición de modelo de objeto de lenguaje multiplataforma
Esta sección necesita expansión . Puede ayudar agregando más . ( Noviembre de 2016 ) |
Ver también [ editar ]
Este artículo está en formato de lista , pero puede leerse mejor en prosa . Noviembre de 2016 ) ( |
- Interfaz de programación de aplicaciones (API)
- Interfaz binaria de aplicación (ABI)
- Convención de llamadas
- SQL incorporado
- Destrozar nombre
- Generador de interfaz y envoltorio simplificado ( SWIG ): generador de enlace de interfaz de muchos idiomas a muchos idiomas, de código abierto
- Función de envoltura
Referencias [ editar ]
- ^ "Apéndice A. Creación de un enlace de idioma para el cairo" . Cairographics.org . Consultado el 2 de abril de 2014 .
- ^ "Estándares, API, interfaces y enlaces" . Acm.org. Archivado desde el original el 16 de enero de 2015 . Consultado el 2 de abril de 2014 .
- ^ "ctypes - Una biblioteca de funciones foráneas para Python" . Documentación de Python v3.8.3 . Docs.python.org . Consultado el 4 de junio de 2020 .
- ^ Hickey, Jason; Madhavapeddy, Anil; Minsky, Yaron (2013). "Real Worl OCaml, Capítulo 19. Interfaz de función ajena" . realworldocaml.org . Consultado 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 de Subversion JavaHL" . Subclipse.tigris.org. 2013-06-18 . Consultado el 2 de abril de 2014 .
Enlaces externos [ editar ]
- JTC1 / SC22 / WG11 - Técnicas de encuadernación , un estándar ISO para encuadernaciones de idiomas
- ¿Qué es una vinculación de idioma?