Flavors, an early
object-oriented extension to
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 lisping ...
developed by
Howard Cannon
Howard Walter Cannon (January 26, 1912 – March 5, 2002) was an American politician from Nevada. Elected to the first of four consecutive terms in 1958, he served in the United States Senate from 1959 to 1983. He was a member of the Democratic ...
at the
MIT Artificial Intelligence Laboratory for the
Lisp machine and its programming language
Lisp Machine Lisp, was the first programming language to include
mixins.
Symbolics
Symbolics was a computer manufacturer Symbolics, Inc., and a privately held company that acquired the assets of the former company and continues to sell and maintain the Open Genera Lisp system and the Macsyma computer algebra system. used it for its Lisp machines, and eventually developed it into New Flavors; both the original and new Flavors were
message passing OO models. It was hugely influential in the development of the
Common Lisp Object System (CLOS).
Implementations of Flavors are also available for
Common Lisp
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 ...
.
Flavors for Allegro CL
/ref>
New Flavors replaced message sending with calling generic functions.
Flavors offers and daemons with the default method combination (called ).
Flavors and CLOS features comparison
Flavors offers a few features not found in CLOS:
* Wrappers
* Automatic lexical access to slots using variables within methods.
* Internal flavor functions, macros and substs.
* Automatically generated constructors.
* options: , , .
* function for sending messages.
CLOS offers the following features not found in Flavors:
* Multimethods
* Methods specialized on individual objects (via ).
* Methods specialized on Common Lisp types (symbol, integer, ...).
* Methods specialized on def-struct types.
* Class slots.
Terminology
References
*
Further reading
*
* "Flavors, Technical Report", ''MIT Artificial Intelligence Laboratory'', Cambridge (Mass.), 1980
* Daniel Weinreb and David A. Moon
David A. Moon is a programmer and computer scientist, known for his work on the Lisp programming language, as co-author of the Emacs text editor, as the inventor of ephemeral garbage collection, and as one of the designers of the Dylan program ...
"Flavors: Message Passing in the Lisp Machine"
A.I. Memo No. 602, November 1980, MIT AI Lab
{{Lisp programming language
Lisp programming language family
Object-oriented programming languages