MLisp

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 in an exact form.[1]

"MLisp" is also another name for Mocklisp, a stripped-down version of Lisp used as an extension language in Gosling Emacs.

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"), which do not evaluate their arguments . As in Lisp-1 or Scheme, there was a single namespace for variables and functions.[2]

While MLISP was just a preprocessor with an alternative, more reader-friendly syntax for Lisp, the descendant MLISP 2 introduced new concepts:[3]

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 or Scheme.[5]

M-LISP (MetaLISP) by Robert Muller is an unrelated language from 1989-1992. It was "a hybrid of M-expression LISP and Scheme".[6][7]

Example

MLISP2/LISP70

M-LISP

gollark: What would probably be neat is cryptocurrency-type tech, except with new money added by having it be signed by some authority instead.
gollark: Perhaps. Though one assumes they could probably do better.
gollark: Though presumably they could *technically* just OCR the details off the card?
gollark: Well, hardware reader systems, I think.
gollark: "We'll make it so that to pay for things at all, you need to give someone this information, and they can withdraw any amount of money if you have that, but it's totally fine because it's illegal to misuse that stuff!"

See also

There have been multiple implementations of infix-notation Lisps and Lisp-like or Lisp-derived languages. Some notable examples include:

References

  1. Enea, Horace (1968) MLISP CS-TR-68-92.pdf
  2. Smith, David Canfield (1970) MLISP USERS' MANUAL Smith-MLISP-AIM-84.pdf (recommended first)
  3. Smith, David Canfield and Enea, Horace J. (1973) MLISP 2 CS-TR-73-356.pdf
  4. Smith, David Canfield and Enea, Horace J. (1973) Backtracking in MLISP2: an efficient backtracking method for LISP 074.pdf
  5. Tesler, Lawrence G., Smith, David Canfield and Enea, Horace J. (1973) The LISP70 pattern matching system 073.pdf
  6. Muller, Robert (October 1992). "M-LISP: a representation-independent dialect of LISP with reduction semantics". ACM Transactions on Programming Languages and Systems (TOPLAS). 14 (4): 589–616. CiteSeerX 10.1.1.40.4948. doi:10.1145/133233.133254.
  7. Muller, Robert (1989). MetaLISP: a representation independent dialect of LISP with reduction semantics (PhD thesis).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.