Smagsstoffer (programmeringssprog) - Flavors (programming language)

Flavours , en tidlig objektorienteret udvidelse til Lisp udviklet af Howard Cannon ved MIT Artificial Intelligence Laboratory for Lisp-maskinen og dens programmeringssprog Lisp Machine Lisp , var det første programmeringssprog, der indeholdt mixins . Symbolics brugte det til sine Lisp-maskiner og udviklede det til sidst til New Flavors ; både de originale og de nye smagsstoffer var OO-modeller, der sendte besked . Det var enormt indflydelsesrig i udviklingen af Common Lisp Object System (CLOS).

Implementeringer af smagsstoffer er også tilgængelige for Common Lisp .

Nye smagsstoffer erstattede afsendelse af beskeder med kaldende generiske funktioner .

Flavours-tilbud :before og :after dæmoner med standardmetodekombinationen (kaldet :daemon ).

Sammenligning af smagsstoffer og CLOS

Flavours tilbyder et par funktioner, der ikke findes i CLOS:

  • Indpakninger
  • Automatisk leksikal adgang til slots ved hjælp af variabler inden for metoder.
  • Interne smagsfunktioner, makroer og understationer.
  • Automatisk genererede konstruktører.
  • DEFFLAVOR muligheder: :required-methods , :abstract-flavor , :mixture .
  • SEND funktion til afsendelse af meddelelser.

CLOS tilbyder følgende funktioner, der ikke findes i Flavors:

  • Multimetoder
  • Metoder specialiserede på individuelle objekter (via EQL ).
  • Metoder specialiseret i Common Lisp-typer (symbol, heltal, ...).
  • Metoder specialiseret på def-struct typer.
  • Klassemaskiner.

Terminologi

Smagsterminologi
Smagsstoffer LUKKET
smag klasse
komponent smag superklasse
afhængig smag underklasse
lokal komponentsmag direkte superklasse
lokal afhængig smag direkte underklasse
generisk funktion generisk funktion
kombineret metode effektiv metode
metodeindstilling metode kvalifikator
eksempel eksempel
instansvariabel slot
bestilling af smagskomponenter klasse forrang liste

Referencer

  1. ^ Howard Cannon, Flavors: En ikke-hierarkisk tilgang til objektorienteret programmering , Symbolics Inc., 1982
  2. ^ s. 46 af Thompson, CW, Ross, KM, Tennant, HR og Saenz, RM 1983. "Opbygning af brugbare menubaserede naturlige sproggrænseflader til databaser". I Proceedings of the 9. internationale konference om meget store databaser (31. oktober - 2. november 1983). M. Schkolnick og C. Thanos, red. Meget store databaser. Morgan Kaufmann Publishers, San Francisco, CA, 43–55.
  3. ^ " Symbolics (1985) brugte New Flavors (en beskedmodtagende model, som Java i dag), Xerox brugte CommonLoops , Lisp Machine Incorporated brugte Object Lisp (Bobrow, 1986), og Hewlett-Packard foreslog at bruge Common Objects (Kempf (1987, 1987). Grupperne kappes med hinanden i sammenhæng med den standardiseringsindsats, der foregik for Common Lisp på det tidspunkt, og sluttede til sidst på en standard baseret på CommonLoops og New Flavors. " s. 108 af Veitch 1998.
  4. ^ Smagsstoffer til Allegro CL
  • "En historie og beskrivelse af CLOS", af Jim Veitch. Sider 107–158 i Håndbog til programmeringssprog, bind IV: Funktionelle og logiske programmeringssprog , red. Peter H. Salus . 1998 (1. udgave), Macmillan Technical Publishing; ISBN   1-57870-011-6

Yderligere læsning