HOME

TheInfoList



OR:

:''"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 "E ...
, 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 "E ...
.'' MLISP is a variant of Lisp 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 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 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 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 fro ...
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 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 d ...
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 computati ...
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 include ...
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".


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 ancestor, ' ...
'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