HOME

TheInfoList



OR:

Flavors, an early
object-oriented Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of pro ...
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 Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Lab ...
for the
Lisp machine Lisp machines are general-purpose computers designed to efficiently run Lisp as their main software and programming language, usually via hardware support. They are an example of a high-level language computer architecture, and in a sense, the ...
and its programming language
Lisp Machine Lisp Lisp Machine Lisp is a programming language, a dialect of the language Lisp. A direct descendant of Maclisp, it was initially developed in the mid to late 1970s as the system programming language for the Massachusetts Institute of Technology ( ...
, was the first programming language to include
mixins In object-oriented programming languages, a mixin (or mix-in) is a class that contains methods for use by other classes without having to be the parent class of those other classes. How those other classes gain access to the mixin's methods depen ...
.
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 In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting i ...
OO models. It was hugely influential in the development of the
Common Lisp Object System The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of ANSI Common Lisp. CLOS is a powerful dynamic object system which differs radically from the OOP facilities found in more static languages such as ...
(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 function In computer programming, a generic function is a function defined for polymorphism. In statically typed languages In statically typed languages (such as C++ and Java), the term ''generic functions'' refers to a mechanism for ''compile-time pol ...
s. 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
"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