stringtranslate.com

Enlace de idioma

En programación y diseño de software , el 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 un servicio de sistema operativo (uno que no sea nativo de ese lenguaje).

Características

La vinculación generalmente se refiere a un 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 idioma pueda usarse en otro idioma. [1] Muchas bibliotecas de software están escritas en lenguajes de programación de sistemas como C o C++ . Para utilizar dichas 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 lenguaje, lo que posiblemente requiera volver a compilar el código del lenguaje, según el cantidad de modificaciones necesarias. [2] Sin embargo, la mayoría de los lenguajes ofrecen una interfaz de función externa , como Python y OCamlctypes , y Embeddable Common Lisp cffiy uffi. [3] [4] [5]

Por ejemplo, los enlaces de Python se utilizan cuando se va a utilizar desde Python una biblioteca C existente, escrita para algún propósito. Otro ejemplo es libsvnel 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, que depende de estar instalado y actúa como un puente entre el lenguaje Java y , proporcionando así una API que invoca funciones para hacer el trabajo. [6]libsvnjavahllibsvnlibsvnlibsvn

Los principales motivos para crear enlaces de biblioteca 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

Modelos de objetos

Maquinas virtuales

Portabilidad

Ver también

Referencias

  1. ^ "Apéndice A. Creación de un enlace de idioma para el cairo". Cairographics.org . Consultado el 2 de abril de 2014 .
  2. ^ "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 .
  3. ^ "ctypes: una biblioteca de funciones externas para Python". Documentación de Python v3.8.3 . Docs.python.org . Consultado el 4 de junio de 2020 .
  4. ^ Chupetón, Jason; Madhavapeddy, Anil; Minsky, Yaron (2013). "Real Worl OCaml, Capítulo 19. Interfaz de funciones externas". realworldocaml.org . Consultado el 19 de julio de 2015 .
  5. ^ "Introducción - Manual del usuario de CFFI". Common-lisp.net . Consultado el 2 de abril de 2014 .
  6. ^ "Preguntas frecuentes sobre Subversion JavaHL". Subclipse.tigris.org. 2013-06-18 . Consultado el 2 de abril de 2014 .

enlaces externos