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
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
- ^ Howard Cannon, Flavors: En ikke-hierarkisk tilgang til objektorienteret programmering , Symbolics Inc., 1982
- ^ 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.
- ^ " 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.
- ^ 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
- "Nye smagsstoffer", David A. Moon , S Keene - Proceedings of ACM Conf. Objektorienteret programmering , systemer (ACM 1986 OOPSLA Conference), 1986
- " Objektorienteret programmering med smag ", David A. Moon . Konference om objektorienterede programmeringssystemers sprog og applikationer 1986, ISSN 0362-1340
- "Smagsstoffer, teknisk rapport", MIT Artificial Intelligence Laboratory , Cambridge (Mass.), 1980
- Daniel Weinreb og David A. Moon , "Flavors: Message Passing in the Lisp Machine" , AI Memo No. 602, November 1980, MIT AI Lab