Next: 4.2 Enlaces estáticos
Up: Comunicación entre LE-LISP y
Previous: Comunicación entre LE-LISP y
En ciertas ocasiones es preciso realizar llamadas desde LE-LISP a procedimientos
externos escritos en otros lenguajes de programación, principalmente C o Fortran.
Dichos procedimientos se convertirán en funciones LE-LISP normales
a las que se les puede pasar argumentos de cualquier tipo y de las que
se puede recuperar
el resultado devuelto.
Las principales causas de esta comunicación con otros lenguajes son:
- La necesidad de comunicar programas escritos en LE-LISP con herramientas
o productos comerciales que no disponen de una interfaz con LISP pero
sí con otro lenguaje de programación que generalmente suele ser C en el
caso de entornos Unix y Fortran o C en el caso de entornos VMS. Este caso
se da, por ejemplo, cuando se necesita realizar consultas a una base de
datos relacional o cuando se tiene que enlazar una analizador sintáctico
escrito en LE-LISP con un analizador léxico generado mediante la herramienta
Flex [Paxon 94].
- Conseguir un mejor rendimiento en la realización de aquellas tareas para
las cuales LE-LISP no está especialmente dotado, por ejemplo
tareas de
cálculo numérico que involucran una elevada cantidad de operaciones
complejas en punto flotante. Para realizar esas tareas con mayor eficiencia
puede ser recomendable acudir a procedimientos externos escritos en
lenguajes como C, Fortran o incluso ensamblador. Lo mismo puede decirse en
el caso de ciertas operaciones basadas en bits sobre pantallas de alta resolución.
En las siguientes secciones se describe cómo enlazar LE-LISP con programas en
C bajo entornos Unix. Esta descripción es válida también para programas Fortran
y ensamblador que respeten
las convenciones de las llamadas C bajo Unix
. Sin embargo, pueden surgir problemas en la comunicación
con programas escritos en lenguajes como el Pascal estándar, debido a la declaración
de los ficheros en la cláusula program. Una posible solución consiste
en escribir un programa Pascal que llame al sistema LE-LISP como un procedimiento externo.
Next: 4.2 Enlaces estáticos
Up: Comunicación entre LE-LISP y
Previous: Comunicación entre LE-LISP y
Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997