Content deleted Content added
No edit summary |
Jerryobject (talk | contribs) WP:LINKs: update-standardize, adds. WP:REFerence WP:CITation parameters: update-standardize-conforms, cut inapplicable, reorders, adds, fills. |
||
(66 intermediate revisions by 47 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>
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
MDL provides several enhancements to
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 [[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.
==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]]
|