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
MLisp
(section)
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!
{{No footnotes|date=April 2020}} <!-- todo --> <!-- add indices and citations --> <!-- doublecheck backtracking --> <!-- doublecheck continuations --> <!-- macros hygienic or not? --> <!-- new entry LISP70 which redirects to here --> :''"MLisp" is also another name for [[Mocklisp]], a stripped-down version of Lisp used as an extension language in [[Gosling Emacs]].'' '''MLISP''' is a variant of [[Lisp programming language|Lisp]] with an [[ALGOL|Algol]]-like syntax based on [[M-expression|M-Expressions]], which were the function syntax in the original description of Lisp by [[John McCarthy (computer scientist)|John McCarthy]]. McCarthy's M-expressions were never implemented in an exact form.<ref>Enea, Horace (1968) MLISP [http://i.stanford.edu/TR/CS-TR-68-92.html ''CS-TR-68-92.pdf'']</ref> MLISP was first implemented for the [[IBM 360]] by [[Horace Enea]] and then reimplemented for the [[PDP 10]] by David Canfield Smith. This second implementation also supported a special kind of lambdas ("[[Fexpr|FEXPR]]"), which do not evaluate their arguments.<!-- Could this be used to implement lazy evaluation? --> As in [[Lisp (programming language)|Lisp-1]] or [[Scheme (programming language)|Scheme]], there was a single namespace for variables and functions.<ref>Smith, David Canfield (1970) MLISP USERS' MANUAL [https://www.saildart.org/AIM/084/pdf ''Smith-MLISP-AIM-84.pdf''] (recommended first)</ref> While MLISP was just a preprocessor with an alternative, more reader-friendly syntax for Lisp, the descendant '''MLISP 2''' introduced new concepts:<ref>Smith, David Canfield and Enea, Horace J. (1973) MLISP 2 [http://i.stanford.edu/TR/CS-TR-73-356.html ''CS-TR-73-356.pdf'']</ref> * interactive interpretation of programs instead of compilation * extensibility with a syntax description language (see [[hygienic macro]]s) * [[pattern matching]] * [[backtracking]] by the use of [[Closure (computer science)|closure]]s on a stack and indices for [[continuation]]s<ref>Smith, David Canfield and Enea, Horace J. (1973) Backtracking in MLISP2: an efficient backtracking method for LISP [https://www.ijcai.org/Proceedings/73/Papers/074.pdf ''074.pdf'']</ref> MLISP2 was called a transitional language by the authors. [[Larry Tesler]] improved the pattern matching system to implement a successor language called '''LISP70''', which was only completed to a preliminary version. Though this path of LISP evolution is widely neglected, it resembles some features, later found in [[ML (programming language)|ML]] or Scheme.<ref>Tesler, Lawrence G., Smith, David Canfield and Enea, Horace J. (1973) The LISP70 pattern matching system [https://www.ijcai.org/Proceedings/73/Papers/073.pdf ''073.pdf'']</ref> '''M-LISP''' (MetaLISP) by Robert Muller is an unrelated language from 1989β1992. It was "a hybrid of [[M-expression]] LISP and [[Scheme (programming language)|Scheme]]".<ref>{{cite journal |last1=Muller |first1=Robert |title=M-LISP: a representation-independent dialect of LISP with reduction semantics |journal=ACM Transactions on Programming Languages and Systems |date=October 1992 |volume=14 |issue=4 |pages=589β616 |doi=10.1145/133233.133254 |doi-access=free |citeseerx=10.1.1.40.4948}}</ref><ref>{{cite thesis |last1=Muller |first1=Robert |title=MetaLISP: a representation independent dialect of LISP with reduction semantics |type=PhD thesis |date=1989}}</ref>
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)