Content deleted Content added
m Cite |
Jerryobject (talk | contribs) WP:LINKs: update-standardize, adds. WP:REFerence WP:CITation parameters: update-standardize-conforms, cut inapplicable, reorders, adds, fills. |
||
(35 intermediate revisions by 19 users not shown) | |||
Line 1:
{{Short description|Lisp-like programming language}}
{{Infobox programming language
| name = MDL
| logo = <!-- Filename only -->
| logo caption =
| screenshot = <!-- Filename only -->
| screenshot caption =
| paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Procedural programming|procedural]], [[Reflective programming|reflective]], [[Metaprogramming|meta]]
| family = [[Lisp (programming language)|Lisp]]
| designers = [[Gerald Sussman]], [[Carl Hewitt]], Chris Reeve, [[Bruce Daniels]]
| developer = [[Massachusetts Institute of Technology|MIT]] [[Project MAC]]
| released = {{Start date and age|1971}}
| latest release version = 105
| latest release date = {{Start date and age|1980}}
| typing = [[Dynamic typing|Dynamic]], [[Strong and weak typing|strong]]
| scope = [[Scope (programming)|Static, lexical]]
| programming language = MDL
| discontinued = Yes
| platform = [[PDP-10]], [[VAX]], [[Apollo/Domain]]
| operating system = [[Incompatible Timesharing System|ITS]], [[TENEX (operating system)|TENEX]], [[TOPS-20]], [[Berkeley Software Distribution|BSD]], [[Domain/OS#AEGIS|AEGIS]]
| license = [[Open-source license|Open-source]]
| file ext =
| file format = <!-- or: | file formats = -->
| website = <!-- {{URL|www.example.com}} -->
| implementations =
| dialects =
| influenced by = [[Lisp (programming language)|Lisp]]
| influenced = [[Z-machine|ZIL]], [[Planner (programming language)|Planner]], [[Scheme (programming language)|Scheme]], [[Common Lisp]], [[Java (programming language)|Java]], [[Prolog]], [[Smalltalk]]; [[actor model]], [[interactive fiction]]
}}
'''MDL''' ('''Model Development Language''',<ref name="Supnik2006">{{cite interview |last1=Supnik |first1=Bob |interviewer=Jason Scott |title=GET LAMP Bob Supnik Interview |date=October 25, 2006 |url=https://archive.org/details/GETLAMP-Supnik |at=15:00}}</ref> or colloquially also referred to as '''More Datatypes than Lisp'''<ref name="Licklider1988">
{{cite report |last1=Licklider |first1=J. C. R. |author1-link=J. C. R. Licklider |date=January 1988 |url=https://apps.dtic.mil/dtic/tr/fulltext/u2/a197342.pdf |title=Graphical Programming and Monitoring RADC-TR-88-7 |publisher=Rome Air Development Center |url-status=live |archive-url=https://web.archive.org/web/20190503021117/https://apps.dtic.mil/dtic/tr/fulltext/u2/a197342.pdf |archive-date=May 3, 2019 |access-date=2019-05-18}}</ref>{{rp|3}} or '''MIT Design Language'''{{citation needed|date=May 2019}}) is a [[programming language]], a descendant of the language [[Lisp (programming language)|Lisp]]. Its initial purpose was to provide [[high-level programming language]] support for the Dynamic Modeling Group at [[Massachusetts Institute of Technology]]'s (MIT) [[Project MAC]].<ref name="DornbrookBlank">
{{cite book |last1=Dornbrook |first1=Michael |last2=Blank |first2=Marc |date=1980 |url=http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-292.pdf |title=MDL Programming Primer MIT-LCS-TR-292 |publisher=Massachusetts Institute of Technology, Laboratory for Computer Science |access-date=2019-05-18}}</ref> It was developed in 1971 on a [[PDP-10]] running [[Incompatible Timesharing System|ITS]] and later ran on [[TENEX (operating system)|TENEX]], [[TOPS-20]],<ref name="GalleyPfister1979">
{{cite book |last1=Galley |first1=Stu W. |last2=Pfister |first2=Greg |date=1979 |url=http://ifarchive.org/if-archive/programming/mdl/manuals/MDL_Programming_Language.pdf |title=The MDL Programming Language |publisher=Massachusetts Institute of Technology, Laboratory for Computer Science |access-date=2018-12-18}} ([https://mdl-language.readthedocs.io/en/latest/ Markdown/HTML transcription])</ref><ref>
{{cite book |last1=Lebling |first1=P. David |date=May 1980 |url=http://ifarchive.org/if-archive/programming/mdl/manuals/MDL_Programming_Environment.pdf |title=The MDL Programming Environment |publisher=Massachusetts Institute of Technology, Laboratory for Computer Science |access-date=2018-12-18}}</ref> [[Berkeley Software Distribution|BSD]],<ref name="Licklider1988"/>{{rp|6}} and [[Domain/OS#AEGIS|AEGIS]].<ref name="Lim1982">
{{cite report |last1=Lim |first1=Poh Chuan |date=1982 |url=https://dspace.mit.edu/bitstream/handle/1721.1/102210/10219781-MIT.pdf#page=69 |title=A Device-Independent Graphics Manager for MDL |page=69 |publisher=Massachusetts Institute of Technology |access-date=2019-05-18}}</ref>
MDL was initially called ''Muddle''.<ref name="GalleyPfister1979"/>{{rp|2}} This style of self-deprecating humor was not widely understood or appreciated outside of Project MAC. So the name was sanitized to MDL.{{citation needed|date=May 2013}}
MDL provides several enhancements to classical Lisp. It supports several built-in data types, including lists, strings and arrays, and user-defined data types. It offers multithreaded expression evaluation and coroutines. Variables can carry both a local value within a scope, and a global value, for passing data between scopes. Advanced built-in functions supported interactive debugging of MDL programs, incremental development, and reconstruction of source programs from object programs.▼
▲MDL provides several enhancements to
Although MDL is obsolete, some of its features have been incorporated in later versions of Lisp. Gerald Sussman went on to develop the [[Scheme (programming language)|Scheme]] language, in collaboration with [[Guy Steele]], who later wrote the specifications for [[Common Lisp]] and [[Java (programming language)|Java]]. Carl Hewitt had already published the idea for the [[PLANNER]] language before the MDL project began, but his subsequent thinking on PLANNER reflected lessons learned from building MDL. Planner concepts influenced languages such as [[Prolog]] and [[Smalltalk]]. Smalltalk and [[Simula]], in turn, influenced his future work on the [[Actor model]].▼
▲Although MDL is obsolete, some of its features have been incorporated in later versions of Lisp.
But the largest influence that MDL had was on the genre known as [[interactive fiction]]. An interactive fiction game known as [[Zork]], sometimes called Dungeon, was first written in MDL. <ref name="dyer19840506">{{Cite news |url=http://www.csd.uwo.ca/Infocom/Articles/globe84.html |title=Masters of the Game |last=Dyer |first=Richard |date=1984-05-06 |newspaper=The Boston Globe |archive-url=http://wayback.archive.org/web/19970607204921/http://www.csd.uwo.ca/Infocom/Articles/globe84.html |archive-date=1997-06-07}}</ref> Later, Reeve, Daniels, Galley and other members of Dynamic Modeling went on to start [[Infocom]], a company that produced many early commercial works of interactive fiction.▼
▲But the largest influence that MDL had was on the [[software]] genre
In 1980 [[Marc Blank]] and Joel Berez adapted the MDL language to create a subset called ZIL ([[Zork Implementation Language]]) which was used extensively by [[Infocom]] to create their award winning games.
<DEFINE EXIT-TO (EXITS RMS)▼
==Code sample==
<MAPF <>▼
This is a sample of PDP-10 MDL:<ref>{{cite web |url=http://simh.trailing-edge.com/games/zork-mdl.zip |title=Zork-mdl.zip}}</ref><ref>{{cite web |url=http://simh.trailing-edge.com/software.html |title=Software Kits |last1=Supnik |first1=Bob |date=2018-06-04 |website=Computer Simulation and History (SimH) |publisher=Bitsavers.org |access-date=2018-12-18}}</ref><ref>{{cite web |url=http://pdp-11.ru/simh_trailing-edge_com/software.html |title=Software Kits |last1=Supnik |first1=Bob |date=2007-09-02 |website=Computer Simulation and History (SimH) |publisher=Forum PDP-11 |access-date=2018-12-18}}</ref>
<FUNCTION (E)▼
#DECL ((E) <OR DIRECTION ROOM CEXIT NEXIT DOOR>)▼
<syntaxhighlight lang="clojure">
<COND (<TYPE? .E DIRECTION>)▼
(<AND <TYPE? .E ROOM> <MEMQ .E .RMS>>▼
#DECL ((EXITS) EXIT (RMS) <UVECTOR [REST
(<AND <TYPE? .E CEXIT> <MEMQ <2 .E> .RMS>>▼
#DECL ((E) <OR DIRECTION ROOM CEXIT
(<AND <TYPE? .E
(<AND <TYPE? .
<MAPLEAVE T>)>>
</syntaxhighlight>
==See also==
* [[Zork Implementation Language]]
* [[Zork]]
* [[Scheme (programming language)
* [[Planner (programming language)]]
==References==▼
{{Reflist}}
==External links==
{{Lisp programming language}}
▲==References==
{{DEFAULTSORT:Mdl (Programming Language)}}
Line 45 ⟶ 85:
[[Category:Functional languages]]
[[Category:Lisp programming language family]]
<!-- Hidden categories below -->
[[Category:Articles with example Lisp (programming language) code]]
|