MDL (programmeringsspråk) - MDL (programming language)
| Paradigm | Multiparadigm : funktionellt , procedurellt , reflekterande , meta |
|---|---|
| Familj | Läspa |
| Designad av | Gerald Sussman , Carl Hewitt , Chris Reeve, Bruce Daniels |
| Utvecklare | MIT Project MAC |
| Första gången dök upp | 1971 |
| Slutlig utgåva | 105 /1980
|
| Skrivdisciplin | Dynamisk , stark |
| Omfattning | Statisk, lexikal |
| Implementeringsspråk | MDL |
| Plattform | PDP-10 , VAX , Apollo/Domain |
| OS | ITS , TENEX , TOPS-20 , BSD , AEGIS |
| Licens | Öppen källa |
| Påverkad av | |
| Läspa | |
| Påverkad | |
| ZIL , Planner , Scheme , Common Lisp , Java , Prolog , Smalltalk ; skådespelarmodell , interaktiv skönlitteratur | |
MDL ( Model Development Language , eller i allmänhet även kallad More Datatypes than Lisp eller MIT Design Language ) är ett programmeringsspråk , en ättling till språket Lisp . Dess ursprungliga syfte var att tillhandahålla språkstöd på hög nivå för Dynamic Modeling Group vid Massachusetts Institute of Technology (MIT) Project MAC . Det utvecklades ursprungligen 1971 på en PDP-10- dator på ett tidsdelande operativsystem som heter Incompatible Timesharing System (ITS). Den kördes senare på TENEX , TOPS-20 , BSD och AEGIS .
Det första utvecklingslaget bestod av Gerald Sussman och Carl Hewitt från Artificial Intelligence Lab och Chris Reeve, Bruce Daniels och David Cressey från Dynamic Modeling Group. Senare skrev Stu Galley, även han från Dynamic Modeling Group, MDL -dokumentationen.
MDL kallades ursprungligen Muddle . Denna stil av självföraktande humor var inte allmänt förstådd eller uppskattad utanför Project MAC och några andra tidiga citadeller av informationsteknik. Så namnet sanerades till MDL.
MDL ger flera förbättringar till klassiska Lisp. Den stöder flera inbyggda datatyper, inklusive listor, strängar och matriser och användardefinierade datatyper. Det erbjuder utvärdering av flertrådade uttryck och coroutines . Variabler kan bära både ett lokalt värde inom ett omfång och ett globalt värde för att överföra data mellan omfattningar. Avancerade inbyggda funktioner stöder interaktiv felsökning av MDL-program, stegvis utveckling och rekonstruktion av källprogram från objektprogram.
Även om MDL är föråldrat, har några av dess funktioner införlivats i senare versioner av Lisp. Gerald Sussman utvecklade Scheme -språket i samarbete med Guy Steele , som senare skrev specifikationerna för Common Lisp och Java . Carl Hewitt hade redan publicerat idén för språkplaneraren innan MDL -projektet började, men hans efterföljande tänkande om Planner återspeglade lärdomar från att bygga MDL. Planerarkoncept påverkade språk som Prolog och Smalltalk . Smalltalk och Simula påverkade i sin tur Hewitts framtida arbete med skådespelarmodellen .
Men det största inflytandet som MDL hade var på mjukvarugren för interaktiv skönlitteratur (IF). Ett IF -spel som heter Zork , ibland kallat Dungeon, skrevs först i MDL. Senare startade Reeve, Daniels, Galley och andra medlemmar i Dynamic Modeling Infocom , ett företag som producerade många tidiga kommersiella verk av interaktiv skönlitteratur.
1980 anpassade Marc Blank och Joel Berez MDL -språket för att skapa en delmängd som heter ZIL (Zork Implementation Language) som användes flitigt av Infocom för att skapa sina prisbelönta spel.
Kodprov
Detta är ett prov på 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>>
Se även
- ZIL (Zork Implementation Language)
- Zork
- Schema (programmeringsspråk)
- Planerare (programmeringsspråk)