Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
MDL (programming language)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{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> The initial development team consisted of [[Gerald Sussman]] and [[Carl Hewitt]] of the Artificial Intelligence Lab, and Chris Reeve, [[Bruce Daniels]], and David Cressey of the Dynamic Modeling Group. Later, Stu Galley, also of the Dynamic Modeling Group, wrote the MDL documentation.{{citation needed|date=August 2013}} 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 classic Lisp. It supports several built-in data types, including lists, strings and arrays, and user-defined data types. It offers [[Thread (computing)|multithreaded]] expression evaluation and [[coroutine]]s. [[Variable (computer science)|Variable]]s 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 [[Software development|development]], and reconstruction of source programs from object programs. 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 language ''[[Planner (programming language)|Planner]]'' 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 Hewitt's future work on the [[actor model]]. But the largest influence that MDL had was on the [[software]] genre of [[interactive fiction]] (IF). An IF game named [[Zork]], sometimes called Dungeon, was first written in MDL.<ref name="dyer19840506">{{Cite news |last1=Dyer |first1=Richard |date=1984-05-06 |url=http://www.csd.uwo.ca/Infocom/Articles/globe84.html |title=Masters of the Game |newspaper=The Boston Globe |url-status=dead |archive-url=https://web.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 software|commercial]] works of interactive fiction. 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. ==Code sample== 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> <syntaxhighlight lang="clojure"> <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>> </syntaxhighlight> ==See also== * [[Zork Implementation Language]] * [[Zork]] * [[Scheme (programming language)]] * [[Planner (programming language)]] ==References== {{Reflist}} ==External links== {{Lisp programming language}} {{DEFAULTSORT:Mdl (Programming Language)}} [[Category:Dynamically typed programming languages]] [[Category:Functional languages]] [[Category:Lisp programming language family]] <!-- Hidden categories below --> [[Category:Articles with example Lisp (programming language) code]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite interview
(
edit
)
Template:Cite news
(
edit
)
Template:Cite report
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Lisp programming language
(
edit
)
Template:Reflist
(
edit
)
Template:Rp
(
edit
)
Template:Short description
(
edit
)