MDL (programovací jazyk) - MDL (programming language)
| Paradigmata | Multi-paradigma : funkční , procedurální , reflexní , meta |
|---|---|
| Rodina | Lisp |
| Navrhl | Gerald Sussman , Carl Hewitt , Chris Reeve, Bruce Daniels |
| Vývojář | Projekt MIT MAC |
| Poprvé se objevil | 1971 |
| Konečné vydání | 105/1980
|
| Kázeň při psaní | Dynamický , silný |
| Rozsah | Statické, lexikální |
| Implementační jazyk | MDL |
| Plošina | PDP-10 , VAX , Apollo/doména |
| OS | ITS , TENEX , TOPS-20 , BSD , AEGIS |
| Licence | Open-source |
| Ovlivněn | |
| Lisp | |
| Ovlivněn | |
| ZIL , Planner , Scheme , Common Lisp , Java , Prolog , Smalltalk ; model herce , interaktivní beletrie | |
MDL ( Model Development Language , nebo hovorově také označovaný jako More Datatypes than Lisp nebo MIT Design Language ) je programovací jazyk , potomek jazyka Lisp . Jeho původním účelem bylo poskytnout jazykové podpoře na vysoké úrovni pro skupinu Dynamic Modeling Group na projektu MAC projektu Massachusetts Institute of Technology (MIT) . Původně byl vyvinut v roce 1971 na počítači PDP-10 na operačním systému pro sdílení času s názvem Incompatible Timesharing System (ITS). Později běžel na TENEX , TOPS-20 , BSD a AEGIS .
Tým pro počáteční vývoj tvořili Gerald Sussman a Carl Hewitt z laboratoře umělé inteligence a Chris Reeve, Bruce Daniels a David Cressey ze skupiny Dynamic Modeling Group. Později Stu Galley, rovněž ze skupiny Dynamic Modeling Group, napsal dokumentaci MDL.
MDL se původně nazývalo Muddle . Tento styl sebepodceňujícího humoru nebyl široce chápán ani oceňován mimo Projekt MAC a několik dalších raných citadel informačních technologií. Název byl tedy dezinfikován na MDL.
MDL poskytuje několik vylepšení klasického Lispu. Podporuje několik předdefinovaných datových typů, včetně seznamů, řetězců a polí a uživatelem definovaných datových typů. Nabízí vyhodnocení a podprogramy vícevláknových výrazů . Proměnné mohou přenášet jak místní hodnotu v rámci oboru, tak globální hodnotu pro předávání dat mezi obory. Pokročilé vestavěné funkce podporovaly interaktivní ladění programů MDL, přírůstkový vývoj a rekonstrukci zdrojových programů z objektových programů.
Přestože je MDL zastaralý, některé jeho funkce byly začleněny do novějších verzí Lispu. Gerald Sussman pokračoval ve vývoji jazyka Scheme ve spolupráci s Guy Steele , který později napsal specifikace pro Common Lisp a Java . Carl Hewitt již zveřejnil myšlenku na jazykový plánovač před zahájením projektu MDL, ale jeho následné uvažování o Planneru odráželo lekce získané při budování MDL. Koncepty plánovače ovlivnily jazyky jako Prolog a Smalltalk . Smalltalk a Simula zase ovlivnili Hewittovu budoucí práci na hereckém modelu .
Největší vliv však MDL měl na softwarový žánr interaktivní beletrie (IF). IF hra s názvem Zork , někdy nazývaná Dungeon, byla poprvé napsána v MDL. Později Reeve, Daniels, Galley a další členové dynamického modelování založili společnost Infocom , která vyráběla mnoho raných komerčních děl interaktivní beletrie.
V roce 1980 Marc Blank a Joel Berez přizpůsobili jazyk MDL a vytvořili podmnožinu zvanou ZIL (Zork Implementation Language), kterou společnost Infocom hojně používala k vytváření svých oceněných her.
Ukázka kódu
Toto je ukázka PDP-10 MDL:
<DEFINE EXIT-TO (EXITS RMS)
#DECL ((EXITS) EXIT (RMS) <UVECTOR [REST ROOM]>)
<MAPF <>
<FUNCTION (E)
#DECL ((E) <OR DIRECTION ROOM CEXIT NEXIT DOOR>)
<COND (<TYPE? .E DIRECTION>)
(<AND <TYPE? .E ROOM> <MEMQ .E .RMS>>
<MAPLEAVE T>)
(<AND <TYPE? .E CEXIT> <MEMQ <2 .E> .RMS>>
<MAPLEAVE T>)
(<AND <TYPE? .E DOOR>
<OR <MEMQ <DROOM1 .E> .RMS>
<MEMQ <DROOM2 .E> .RMS>>>
<MAPLEAVE T>)>>
.EXITS>>