MDL ( Model Development Language , [1] o coloquialmente también conocido como More Datatypes than Lisp [2] : 3 o MIT Design Language [ cita requerida ] ) es un lenguaje de programación , un descendiente del lenguaje Lisp . Su propósito inicial era proporcionar soporte de lenguaje de alto nivel para el Grupo de Modelado Dinámico en el Proyecto MAC del Instituto de Tecnología de Massachusetts (MIT) . [3] Se desarrolló inicialmente en 1971 en una computadora PDP-10 en un sistema operativo de tiempo compartido. denominado Sistema de tiempo compartido incompatible (ITS). Posteriormente se ejecutó en TENEX , TOPS-20 , [4] [5] BSD , [2] : 6 y AEGIS . [6]
Paradigmas | Multi-paradigma : funcional , procedimental , reflexivo , meta |
---|---|
Familia | Ceceo |
Diseñada por | Gerald Sussman , Carl Hewitt , Chris Reeve y Bruce Daniels |
Desarrollador | Proyecto MAC del MIT |
Apareció por primera vez | 1971 |
Lanzamiento final | 105/1980 |
Disciplina de mecanografía | Dinámico , fuerte |
Alcance | Estático, léxico |
Lenguaje de implementación | MDL |
Plataforma | PDP-10 , VAX , Apollo / Dominio |
SO | SU , TENEX , TOPS-20 , BSD , AEGIS |
Licencia | Fuente abierta |
Influenciado por | |
Ceceo | |
Influenciado | |
Planificador , Esquema , Common Lisp , Java , Prolog , Smalltalk ; modelo de actor , ficción interactiva |
El equipo de desarrollo inicial estaba formado por Gerald Sussman y Carl Hewitt del Laboratorio de Inteligencia Artificial, y Chris Reeve, Bruce Daniels y David Cressey del Grupo de Modelado Dinámico. Más tarde, Stu Galley, también del Dynamic Modeling Group, escribió la documentación MDL. [ cita requerida ]
MDL inicialmente se llamó Muddle . [4] : 2 Este estilo de humor autocrítico no fue ampliamente comprendido o apreciado fuera del Proyecto MAC y algunas otras ciudadelas tempranas de la tecnología de la información. Así que el nombre fue saneado a MDL. [ cita requerida ]
MDL proporciona varias mejoras al Lisp clásico. Admite varios tipos de datos integrados, incluidas listas, cadenas y matrices, y tipos de datos definidos por el usuario. Ofrece evaluación de expresiones multiproceso y corrutinas . Las variables pueden llevar tanto un valor local dentro de un ámbito como un valor global, para pasar datos entre ámbitos. Las funciones integradas avanzadas admitían la depuración interactiva de programas MDL, el desarrollo incremental y la reconstrucción de programas fuente a partir de programas objeto.
Aunque MDL es obsoleto, algunas de sus características se han incorporado en versiones posteriores de Lisp. Gerald Sussman pasó a desarrollar el lenguaje Scheme , en colaboración con Guy Steele , quien más tarde escribió las especificaciones para Common Lisp y Java . Carl Hewitt ya había publicado la idea de Language Planner antes de que comenzara el proyecto MDL, pero su pensamiento posterior sobre Planner reflejó las lecciones aprendidas al construir MDL. Los conceptos de planificador influyeron en lenguajes como Prolog y Smalltalk . Smalltalk y Simula , a su vez, influyeron en el trabajo futuro de Hewitt sobre el modelo de actor .
Pero la mayor influencia que tuvo MDL fue en el género de software de ficción interactiva (IF). Un juego IF llamado Zork , a veces llamado Dungeon, se escribió por primera vez en MDL. [7] Más tarde, Reeve, Daniels, Galley y otros miembros de Dynamic Modeling iniciaron Infocom , una empresa que produjo muchas de las primeras obras comerciales de ficción interactiva.
Muestra de código
Esta es una muestra de PDP-10 MDL: [8] [9] [10]
< DEFINE salida- A ( SALIDAS RMS ) # DECL (( SALIDAS ) SALIDA ( RMS ) < UVECTOR [ RESTO SALA ] > ) < MAPF <> < FUNCIÓN ( E ) # DECL (( E ) < O DIRECCIÓN SALA cCierre Nexit PUERTA> ) < COND ( < TIPO ? . E DIRECCIÓN> ) ( < Y < TIPO ? . E SALA> < MemQ . E . RMS >> < MAPLEAVE T> ) ( < Y < TIPO ? . E cCierre> < MemQ < 2 . E > . RMS >> < MAPLEAVE T> ) ( < Y < TIPO ? . E PUERTA> < O < MemQ < DROOM1 . E > . RMS > < MemQ < DROOM2 . E > . RMS >>> < MAPLEAVE T> ) >> . SALIDAS >>
Ver también
- Zork
- Scheme (lenguaje de programación)
- Planner (lenguaje de programación)
Referencias
- ^ Supnik, Bob (25 de octubre de 2006). "GET LAMP Entrevista a Bob Supnik" (Entrevista). Entrevistado por Jason Scott. 15:00.
- ^ a b Licklider, JCR (enero de 1988). "Programación gráfica y monitoreo RADC-TR-88-7" (PDF) . Centro de Desarrollo del Aire de Roma . Consultado el 18 de mayo de 2019 .
- ^ Dornbrook, Michael; Blank, Marc (1980). "Manual de programación MDL MIT-LCS-TR-292" (PDF) . Instituto de Tecnología de Massachusetts, Laboratorio de Ciencias de la Computación . Consultado el 18 de mayo de 2019 .
- ^ a b Galley, Stu W .; Pfister, Greg (1979). "El lenguaje de programación MDL" (PDF) . Instituto de Tecnología de Massachusetts, Laboratorio de Ciencias de la Computación . Consultado el 18 de diciembre de 2018 .
- ^ Lebling, P. David (mayo de 1980). "El entorno de programación MDL" (PDF) . Instituto de Tecnología de Massachusetts, Laboratorio de Ciencias de la Computación . Consultado el 18 de diciembre de 2018 .
- ^ Lim, Poh Chuan (1982). "Un administrador de gráficos independiente del dispositivo para MDL" (PDF) . Instituto de Tecnología de Massachusetts. pag. 69 . Consultado el 18 de mayo de 2019 .
- ^ Dyer, Richard (6 de mayo de 1984). "Maestros del juego" . El Boston Globe . Archivado desde el original el 7 de junio de 1997.
- ^ "Zork-mdl.zip" .
- ^ Supnik, Bob (4 de junio de 2018). "Kits de software" . Simulación e Historia por Computadora (SimH) . Bitsavers.org . Consultado el 18 de diciembre de 2018 .
- ^ Supnik, Bob (2 de septiembre de 2007). "Kits de software" . Simulación e Historia por Computadora (SimH) . Foro PDP-11 . Consultado el 18 de diciembre de 2018 .