Como AÏDA [ILOG 92c] está construido sobre LE-LISP
[INRIA 91], es conveniente realizar primero
una breve introducción sobre las características de este lenguaje antes de
pasar a describir los
elementos propios de la herramienta. Como su propio nombre da a entender,
LE-LISP pertenece a la amplia familia de dialectos de LISP. Su nacimiento
tuvo lugar en el INRIA de Rocquencourt (Francia) a principios de los años 80.
En aquellos momentos, en dicho instituto se estaba utilizando LISP como lenguaje de
implementación de un complejo sistema de diseño VLSI que incluía gráficos,
simulación, etc. Debido a la rápida evolución experimentada por el hardware en
aquellas fechas, el proyecto VLSI se fue desarrollando progresivamente sobre muchas
máquinas heterogéneas e incompatibles entre sí. La inexistencia de una variante
de LISP que se pudiese ejecutar en todas las máquinas utilizadas suponía una
seria complicación.
Es por ello que se decidieron a crear una variante propia del LISP en la que la
portabilidad, tanto del propio sistema LISP como de las aplicaciones, fuese
una característica fundamental.
LE-LISP fue diseñado para obtener una máxima eficiencia tanto en términos de los
recursos necesarios para su ejecución como de los
necesarios para el desarrollo de aplicaciones
. Para conseguir estas metas la implementación
del sistema se realizó en C. Con el fin de obtener la
portabilidad necesaria, se diseñó
una máquina virtual denominada LLM3, sobre la cual se construyó el sistema
LE-LISP, con lo cual tan sólo es necesario portar LLM3 de una máquina a otra para
garantizar que el resto del sistema funcionará correctamente. Además, está disponible un
lenguaje de la máquina virtual LLM3 denominado LAP
a partir del cual se puede tener acceso a los recursos internos
de LLM3, lo cual abre la posibilidad de escribir nuevas funciones estándar o
incluso de construir un nuevo compilador de LE-LISP o de otro lenguaje. Con el tiempo,
el sistema LE-LISP ha ido creciendo al incorporar mejoras como son la aritmética genérica
extensible por el usuario, un sistema de tipos orientado a objetos, bibliotecas
gráficas virtuales, acceso a rutinas externas, etc.
A continuación se realizará una descripción de LE-LISP que pueda servir de base para una mejor comprensión de las utilidades de AÏDA que se mostrarán en la sección B.2. Por tanto, lo que viene a continuación no pretende ser una guía de programación en LISP.