MetaInterprete

(meta interpreter)


 

MetaInterprete v. 1.0b
©Freeware.
Authors: Enrique Alvarez, Luigi Ceccaroni, Enrique Paniagua @ UPC

MetaInterprete es un intérprete de CommonLisp. 
Actualmente, su principal funcionalidad es a nivel pedagógico (y de simple debugger). 
El sistema muestra la gestión que se realiza del entorno de variables y funciones (a nivel temporal), así como la evaluación de las principales estructuras de control algorítmico. 
Esto permite entender fácilmente el flujo de operaciones a lo largo del proceso.

 

You can download the Lisp Code to test and improve this meta-interpreter.


 

Expresiones interpretadas:

- nil
- t
- números
- strings
- símbolos
- todos los símbolos soportados por LISP
- variables propias del sistema:

*entorno-variables*
Contiene el entorno de variables.
Su estructura es '((varN valorN)...(var1 valor1)) y se gestiona en forma de pila (acceso desde la izquierda).
Permite un acceso total por parte del usuario, por tanto se debe ir con CAUTELA a la hora de alterar su contenido.

*entorno-funciones*
Contiene el entorno de funciones.
Su estructura es '((nomfunN listaargsN listacuerpoN)...(nomfun1 listaargs1 listacuerpo1)) y se gestiona en forma de pila (acceso desde la izquierda).
Permite un acceso total por parte del usuario, por tanto se debe ir con CAUTELA a la hora de alterar su contenido.

*colaboradores*
Contiene el número de interpretes (aplicaciones esclavas) que colaboran con este interprete (maestro).
Esta versión del intérprete no soporta esta funcionalidad.
Su valor es 0. El intento de modificación de esta variable causara un error.

*imprimir-mensajesp*
Variable lógica.
Según su valor, se visualizaran o no los comentarios explicativos del proceso de interpretación.

- funciones:

- quote
- eval
- let
- setq
- setf
- if
- when
- unless
- cond
- defun
- function
- apply
- funcall
- progn
- mapcar
- labels
- dolist


- funciones definidas por el usuario
- funciones propias del sistema:

bye
Sale del Interprete. 

autores
E-mail de los autores.

 


©Scott Adams



Last updated: Friday, June 21, 2002
 Luigi’s Blogspot page