:''"MLisp" is also another name for
Mocklisp
Gosling Emacs (often shortened to "Gosmacs" or "gmacs") is a discontinued Emacs implementation written in 1981 by James Gosling in C.
Gosling initially allowed Gosling Emacs to be redistributed with no formal restrictions, as required by the "Em ...
, a stripped-down version of Lisp used as an extension language in
Gosling Emacs
Gosling Emacs (often shortened to "Gosmacs" or "gmacs") is a discontinued Emacs implementation written in 1981 by James Gosling in C.
Gosling initially allowed Gosling Emacs to be redistributed with no formal restrictions, as required by the "Em ...
.''
MLISP is a variant of
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 ...
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 th ...
-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
The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applica ...
by
Horace Enea
Quintus Horatius Flaccus (; 8 December 65 – 27 November 8 BC), known in the English-speaking world as Horace (), was the leading Roman lyric poet during the time of Augustus (also known as Octavian). The rhetorician Quintilian regarded his '' ...
and then reimplemented for the
PDP 10
Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especi ...
by David Canfield Smith. This second implementation also supported a special kind of lambdas ("
FEXPR In Lisp programming languages, a fexpr is a function whose operands are passed to it without being evaluated. When a fexpr is called, only the body of the fexpr is evaluated; no other evaluations take place except when explicitly initiated by the fe ...
"), which do not evaluate their arguments. As in
Lisp-1
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 ...
or
Scheme A scheme is a systematic plan for the implementation of a certain idea.
Scheme or schemer may refer to:
Arts and entertainment
* ''The Scheme'' (TV series), a BBC Scotland documentary series
* The Scheme (band), an English pop band
* ''The Schem ...
, 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 macro
Hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. They are a feature of programming languages such as Scheme, Dylan, Rust, Nim, and Julia. The general problem of accidental capture was w ...
s)
*
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 has to be exact: "either it will or will not be ...
*
backtracking
Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it de ...
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, Amazon, and Yahoo!
While at PARC, Tesler's work includ ...
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
In computer programming, M-expressions (or meta-expressions) were an early proposed syntax for the Lisp programming language, inspired by contemporary languages such as Fortran and ALGOL. The notation was never implemented into the language and ...
LISP and
Scheme A scheme is a systematic plan for the implementation of a certain idea.
Scheme or schemer may refer to:
Arts and entertainment
* ''The Scheme'' (TV series), a BBC Scotland documentary series
* The Scheme (band), an English pop band
* ''The Schem ...
".
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 an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
's
Newton project
*
CGOL
CGOL (pronounced ''"see goll"'') is an alternative syntax featuring an extensible algebraic notation for the Lisp programming language. It was designed for MACLISP by Vaughan Pratt and subsequently ported to Common Lisp.
The notation of CGOL ...
References
{{reflist
Lisp programming language family