- MLisp
:"MLisp" is also another name for
Mocklisp , a stripped-down version of Lisp used as an extension language inGosling Emacs ."MLISP is a variant of Lisp with an Algol-like syntax based on M-Expressions, which were the function syntax in the original description of Lisp by John McCarthy. McCarthy's M-expressions were never implemented.
MLISP was first implemented for the
IBM 360 by Horace Enea and then reimplemented for thePDP 10 by David Canfield Smith. This second implementation also supported a special kind of lambdas ("FEXPR"), which do not evaluate their arguments . As in Lisp-1 or Scheme, there was a single namespace for variables and functions.While MLISP was just a preprocessor with an alternative, more reader-friendly syntax for Lisp, the descendant MLISP 2 introduced new concepts:
* interactive interpretation of programs instead of compilation
* extensibility with a syntax description language (seehygienic macro s)
*pattern matching
*backtracking by the use of closures on a stack and indices forcontinuation sMLISP2 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 or Scheme.M-LISP is a second branch — independent from the MLISP approach — and, as described by the author, essentially a hybrid of
M-expression LISP andScheme .References
* Enea, Horace (1968) MLISP [ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/68/92/CS-TR-68-92.pdf"CS-TR-68-92.pdf"]
* Smith, David Canfield (1970) MLISP USERS' MANUAL [http://www.softwarepreservation.org/projects/LISP/stanford/Smith-MLISP-AIM-84.pdf"Smith-MLISP-AIM-84.pdf"] (recommended first)
* Smith, David Canfield and Enea, Horace J. (1973) MLISP 2 [ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/73/356/CS-TR-73-356.pdf"CS-TR-73-356.pdf"] (based on previous report)
* Smith, David Canfield and Enea, Horace J. (1973) Backtracking in MLISP2: an efficient backtracking method for LISP [http://dli.iiit.ac.in/ijcai/IJCAI-73/PDF/074.pdf"074.pdf"]
* Tesler, Lawrence G., Smith, David Canfield and Enea, Horace J. (1973) The LISP70 pattern matching system [http://dli.iiit.ac.in/ijcai/IJCAI-73/PDF/073.pdf"073.pdf"]
* Muller, Robert (1989) MetaLISP: A Representation Independent Dialect of LISP with Reduction Semantics. PhD thesis
* Muller, Robert (1990) Syntax macros in M-LISP: A representation independent dialect of LISP with reduction semantics
* Muller, Robert (1990) Semantic Prototyping in M-LISP: A Representation Independent Dialect of LISP with Reduction Semantics
* Muller, Robert (1991) M-LISP: Its Natural Semantics and Equational Logic
* Muller, Robert (1992) M-LISP: A Representation-Independent Dialect of LISP with Reduction Semantics
Wikimedia Foundation. 2010.