Admite la posibilidad de incrustar el código en aplicaciones en otros lenguajes de programación. Guile se puede usar como lenguaje para desarrollar extensiones de aplicación, definir configuraciones o desarrollar componentes para conectar las diversas primitivas proporcionadas por la aplicación. Guile es el lenguaje oficial de desarrollo de extensiones para el sistema operativo GNU.
Sobre Gnu Guile
El núcleo de Guile es una máquina virtual eficiente que ejecuta un conjunto de instrucciones portátil generado por un compilador de optimización especial. La máquina virtual Guile se integra perfectamente con el código de aplicación C y C ++.
Además del lenguaje Scheme, que admite las especificaciones R5RS, R6RS y R7RS, el proyecto Guile también desarrolló compiladores para otros idiomas, como ECMAScript, Emacs Lisp y Lua (en desarrollo).
La idea principal de Guile Scheme es que el desarrollador implemente algoritmos críticos y estructuras de datos en C o C++ y exporte las funciones y tipos para que sean usados por el código interpretado.
Por lo tanto, Guile Scheme, y otros lenguajes implementados por Guile, puede ampliarse con nuevos tipos y subrutinas implementadas a través de la API de C.
La distribución estándar ofrece módulos para llamadas de sistemas POSIX, planificadores, una interfaz de funciones foráneas, expresiones basadas en el procesamiento de XML a partir de SXML, SXPath y SXSLT.
Principales novedades de GNU Guile 3.0
Una innovación clave en GNU Guile 3.0 fue la aparición de un compilador JIT, además del intérprete y compilador bytecode propuesto previamente, ejecutado en una máquina virtual especial que está vinculada a la aplicación en forma de biblioteca.
JIT permite generar código de máquina sobre la marcha y acelera significativamente la ejecución de aplicaciones Guile (las pruebas muestran una aceleración de hasta 4 veces). El compilador JIT admite arquitecturas x86-64, i686, ARMv7 y AArch64.
Tambien se destaca que se agrego el soporte para la nueva especificación de lenguaje Scheme R7RS y módulos de biblioteca definidos en ella.
Fuente : linuxblog
- Visto: 1109