MDL (Model Development Language,
or colloquially also referred to as More Datatypes than Lisp
[
] or MIT Design Language) is a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
, a descendant of the language
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
. Its initial purpose was to provide high level language support for the Dynamic Modeling Group at
Massachusetts Institute of Technology
The Massachusetts Institute of Technology (MIT) is a Private university, private Land-grant university, land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern t ...
's (MIT)
Project MAC.
[
] It was developed in 1971 on a
PDP-10 running
ITS and later ran on
TENEX,
TOPS-20
The TOPS-20 operating system by Digital Equipment Corporation (DEC) is a proprietary OS used on some of DEC's 36-bit mainframe computers. The Hardware Reference Manual was described as for "DECsystem-10/DECSYSTEM-20 Processor" (meaning the DEC PD ...
,
[
] BSD,
and
AEGIS.
[
]
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.
MDL was initially called ''Muddle''.
This style of self-deprecating humor was not widely understood or appreciated outside of Project MAC. So the name was sanitized to MDL.
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
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
In computer programming and software development, debugging is the process of finding and resolving ''bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems.
Debugging tactics can involve in ...
of MDL programs, incremental
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 language, in collaboration with
Guy Steele, who later wrote the specifications for
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fr ...
and
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
. Carl Hewitt had already published the idea for the language ''
Planner
Planner may refer to:
* A personal organizer (book) for planning
* Microsoft Planner
* Planner programming language
* Planner (PIM for Emacs)
* Urban planner
* Route planner
* Meeting and convention planner
* Japanese term for video game de ...
'' before the MDL project began, but his subsequent thinking on Planner reflected lessons learned from building MDL. Planner concepts influenced languages such as
Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.
Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily a ...
and
Smalltalk
Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by ...
. Smalltalk and
Simula
Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of AL ...
, in turn, influenced Hewitt's future work on the
actor model.
But the largest influence that MDL had was on the
software
Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work.
...
genre of
interactive fiction (IF). An IF game named
Zork, sometimes called Dungeon, was first written in MDL.
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.
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:
EST ROOM)
)
)
( >
)
( .RMS>>
)
(
.RMS>
.RMS>>>
)>>
.EXITS>>
See also
*
ZIL (Zork Implementation Language)
*
Zork
*
Scheme (programming language)
Scheme is a dialect of the Lisp family of programming languages. Scheme was created during the 1970s at the MIT AI Lab and released by its developers, Guy L. Steele and Gerald Jay Sussman, via a series of memos now known as the Lambda Papers. ...
*
Planner (programming language)
References
External links
{{DEFAULTSORT:Mdl (Programming Language)
Dynamically typed programming languages
Functional languages
Lisp programming language family