MDL (programovací jazyk) - MDL (programming language)

MDL
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 ; Před 50 lety ( 1971 )
Konečné vydání
105/1980 ; Před 41 lety ( 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>>

Viz také

Reference

externí odkazy