- "MLisp" es también otro nombre para Mocklisp , una versión simplificada de Lisp utilizada como lenguaje de extensión en Gosling Emacs .
MLISP es una variante de Lisp con una sintaxis similar a Algol basada en M-Expressions , que eran la sintaxis de función en la descripción original de Lisp por John McCarthy . Las expresiones M de McCarthy nunca se implementaron de una forma exacta. [1]
MLISP fue implementado por primera vez para IBM 360 por Horace Enea y luego reimplementado para el PDP 10 por David Canfield Smith. Esta segunda implementación también soportó un tipo especial de lambdas (" FEXPR "), que no evalúan sus argumentos. Como en Lisp-1 o Scheme , había un solo espacio de nombres para variables y funciones. [2]
Si bien MLISP era solo un preprocesador con una sintaxis alternativa y más fácil de leer para Lisp, el descendiente MLISP 2 introdujo nuevos conceptos: [3]
- interpretación interactiva de programas en lugar de compilación
- extensibilidad con un lenguaje de descripción de sintaxis (ver macros higiénicas )
- la coincidencia de patrones
- retroceso mediante el uso de cierres en una pila e índices para continuaciones [4]
Los autores llamaron a MLISP2 un lenguaje de transición. Larry Tesler mejoró el sistema de coincidencia de patrones para implementar un lenguaje sucesor llamado LISP70 , que solo se completó en una versión preliminar. Aunque esta ruta de evolución de LISP está ampliamente descuidada, se parece a algunas características, que luego se encuentran en ML o Scheme. [5]
M-LISP (MetaLISP) de Robert Muller es un lenguaje no relacionado de 1989 a 1992. Era "un híbrido de LISP y Scheme de expresión M ". [6] [7]
Ejemplo
MLISP2 / LISP70
M-LISP
Ver también
Ha habido múltiples implementaciones de Lisps de notación infija y lenguajes tipo Lisp o derivados de Lisp. Algunos ejemplos notables incluyen:
- Dylan , que se originó en Manzana 's Newton proyecto
- CGOL
- David A. Luna 's PARCELA
- La lectura mecánica Lisp S-expresiones Proyecto , anteriormente dulce Expresiones
- Encuesta de sintaxis LISP Infix por Xah Lee
Referencias
- ^ Enea, Horacio (1968) MLISP CS-TR-68-92.pdf
- ^ Smith, David Canfield (1970) MANUAL DE USUARIOS DE MLISP Smith-MLISP-AIM-84.pdf (recomendado primero)
- ^ Smith, David Canfield y Enea, Horace J. (1973) MLISP 2 CS-TR-73-356.pdf
- ^ Smith, David Canfield y Enea, Horace J. (1973) Retroceso en MLISP2: un método de retroceso eficiente para LISP 074.pdf
- ^ Tesler, Lawrence G., Smith, David Canfield y Enea, Horace J. (1973) El sistema de coincidencia de patrones LISP70 073.pdf
- ^ Muller, Robert (octubre de 1992). "M-LISP: un dialecto independiente de representación de LISP con semántica de reducción" . Transacciones ACM sobre lenguajes y sistemas de programación . 14 (4): 589–616. CiteSeerX 10.1.1.40.4948 . doi : 10.1145 / 133233.133254 .
- ^ Muller, Robert (1989). MetaLISP: un dialecto independiente de representación de LISP con semántica de reducción (tesis doctoral).