:''"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
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
with an
Algol
ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the ...
-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.
MLISP was first implemented for the
IBM 360 by
Horace Enea
Quintus Horatius Flaccus (; 8 December 65 BC – 27 November 8 BC),Suetonius, Life of Horace commonly known in the English-speaking world as Horace (), was the leading Roman lyric poet during the time of Augustus (also known as Octavian). The ...
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.
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 (see
hygienic macros)
*
pattern matching
In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually must be exact: "either it will or will not be a ...
*
backtracking by the use of
closures on a stack and indices for
continuation
In computer science, a continuation is an abstract representation of the control state of a computer program. A continuation implements ( reifies) the program control state, i.e. the continuation is a data structure that represents the computat ...
s
MLISP2 was called a transitional language by the authors.
Larry Tesler
Lawrence Gordon Tesler (April 24, 1945 – February 16, 2020) was an American computer scientist who worked in the field of human–computer interaction. Tesler worked at Xerox PARC, Apple Inc., Apple, Amazon.com, Amazon, and Yahoo!.
While at PA ...
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 (MetaLISP) by Robert Muller is an unrelated language from 1989–1992. It was "a hybrid of
M-expression LISP and
Scheme".
See also
There have been multiple implementations of infix-notation Lisps and Lisp-like or Lisp-derived languages. Some notable examples include:
*
Dylan, which originated in
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
's
Newton project
*
CGOL
References
{{reflist
Lisp programming language family