Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Flavors (programming language)

From Wikipedia, the free encyclopedia
Programming language

Flavors[1] is an earlyobject-oriented extension toLisp developed byHoward Cannon at theMIT Artificial Intelligence Laboratory for theLisp machine and its programming languageLisp Machine Lisp. It is notable as the first programming language to includemixins.[2]Symbolics used it for its Lisp machines, and eventually developed it intoNew Flavors; both the original and new Flavors weremessage-passing OO models. It was hugely influential in the development of theCommon Lisp Object System (CLOS).[3]

Implementations of Flavors are also available forCommon Lisp.[4]

New Flavors replaced message sending with callinggeneric functions.

Flavors offers:before and:after daemons with the default method combination (called:daemon).

Flavors and CLOS features comparison

[edit]

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.
  • DEFFLAVOR options::required-methods,:abstract-flavor,:mixture.
  • SEND function for sending messages.

CLOS offers the following features not found in Flavors:

  • Multimethods
  • Methods specialized on individual objects (viaEQL).
  • Methods specialized on Common Lisp types (symbol, integer, ...).
  • Methods specialized on def-struct types.
  • Class slots.

Terminology

[edit]
Flavors terminology
FlavorsCLOS
flavorclass
component flavorsuperclass
dependent flavorsubclass
local component flavordirect superclass
local dependent flavordirect subclass
generic functiongeneric function
combined methodeffective method
method optionmethod qualifier
instanceinstance
instance variableslot
ordering of flavor componentsclass precedence list

References

[edit]
  1. ^Howard Cannon,Flavors: A non-hierarchical approach to object-oriented programming, Symbolics Inc., 1982
  2. ^pg 46 of Thompson, C. W., Ross, K. M., Tennant, H. R., and Saenz, R. M. 1983. "Building Usable Menu-Based Natural Language Interfaces To Databases". InProceedings of the 9th international Conference on Very Large Data Bases (October 31 – November 2, 1983). M. Schkolnick and C. Thanos, Eds. Very Large Data Bases. Morgan Kaufmann Publishers, San Francisco, CA, 43–55.
  3. ^"Symbolics (1985) was usingNew Flavors (a message-sending model, like Java today), Xerox was usingCommonLoops,Lisp Machine Incorporated was usingObject Lisp (Bobrow, 1986), andHewlett-Packard proposed usingCommon Objects (Kempf, 1987). The groups vied with each other in the context of the standardization effort going on for Common Lisp at the time and finally settled on a standard based on CommonLoops and New Flavors." p. 108 of Veitch 1998.
  4. ^Flavors for Allegro CL
  • Veitch, Jim (1998). "A History and Description of CLOS". InSalus, Peter H. (ed.).Handbook of Programming Languages, Volume IV: Functional and Logic Programming Languages (1st ed.). Macmillan Technical Publishing. pp. 107–158.ISBN 1-57870-011-6.

Further reading

[edit]
Features
Object systems
Implementations
Standardized
Common
Lisp
Scheme
ISLISP
Unstandardized
Logo
POP
Operating system
Hardware
Community
of practice
Technical standards
Education
Books
Curriculum
Organizations
Business
Education
People
Common
Lisp
Scheme
Logo
POP
Retrieved from "https://en.wikipedia.org/w/index.php?title=Flavors_(programming_language)&oldid=1292136285"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp