Smaki (język programowania) - Flavors (programming language)

Flavours , wczesne zorientowane obiektowo rozszerzenie Lisp, opracowane przez Howarda Cannona w Laboratorium Sztucznej Inteligencji MIT dla maszyny Lisp i jej języka programowania Lisp Machine Lisp , było pierwszym językiem programowania, który zawierał mixins . Symbolics użył go w swoich maszynach Lisp i ostatecznie przekształcił go w Nowe Smaki ; zarówno oryginalne, jak i nowe Smaki były przesłaniem przekazującym modele OO. Miał ogromny wpływ na rozwój Common Lisp Object System (CLOS).

Implementacje Flavours są również dostępne dla Common Lisp .

Nowe Flavours zastąpiły wysyłanie wiadomości wywołaniem funkcji ogólnych .

Oferty smaków :before i :after demony z domyślną kombinacją metod (tzw :daemon .).

Porównanie smaków i funkcji CLOS

Flavours oferuje kilka funkcji, których nie ma w CLOS:

  • Owijki
  • Automatyczny dostęp leksykalny do slotów przy użyciu zmiennych w metodach.
  • Wewnętrzne funkcje smakowe, makra i zamienniki.
  • Konstruktory generowane automatycznie.
  • DEFFLAVOR opcje: :required-methods , :abstract-flavor , :mixture .
  • SEND funkcja wysyłania wiadomości.

CLOS oferuje następujące funkcje, których nie ma w Smakach:

  • Multimethods
  • Metody wyspecjalizowane w poszczególnych obiektach (via EQL ).
  • Metody wyspecjalizowane w typach Common Lisp (symbol, liczba całkowita, ...).
  • Metody wyspecjalizowane w typach def-struct.
  • Miejsca na klasy.

Terminologia

Terminologia dotycząca smaków
Aromaty ZAMKNIJ
smak klasa
smak komponentu superklasa
smak zależny podklasa
smak składnika lokalnego bezpośrednia superklasa
smak zależny od lokalnego podklasa bezpośrednia
funkcja ogólna funkcja ogólna
metoda łączona skuteczna metoda
opcja metody kwalifikator metody
instancja instancja
zmienna instancji otwór
zamawianie składników smakowych lista pierwszeństwa klas

Bibliografia

  1. ^ Howard Cannon, Flavours: A niehierarchiczne podejście do programowania obiektowego , Symbolics Inc., 1982
  2. ^ str. 46 w Thompson, CW, Ross, KM, Tennant, HR i Saenz, RM 1983. „Building Usable Menu-Based Natural Language Interfaces to Databases”. W materiałach z IX międzynarodowej konferencji nt. Bardzo dużych baz danych (31 października - 2 listopada 1983). M. Schkolnick i C. Thanos, wyd. Bardzo duże bazy danych. Morgan Kaufmann Publishers, San Francisco, CA, 43–55.
  3. ^ " Symbolics (1985) używał New Flavours (model wysyłania wiadomości, jak dziś Java), Xerox korzystał z CommonLoops , Lisp Machine Incorporated korzystał z Object Lisp (Bobrow, 1986), a Hewlett-Packard proponował używanie Common Objects (Kempf , 1987). Grupy rywalizowały ze sobą w kontekście wysiłków normalizacyjnych prowadzonych w tamtym czasie dla Common Lisp i ostatecznie zdecydowały się na standard oparty na CommonLoops i New Flavours. ” p. 108 z Veitch 1998.
  4. ^ Aromaty dla Allegro CL
  • „Historia i opis zamknięcia”, Jim Veitch. Strony 107–158 Handbook of Programming Languages, tom IV: Functional and Logic Programming Languages , wyd. Peter H. Salus . 1998 (wydanie 1), Macmillan Technical Publishing; ISBN   1-57870-011-6 .Linki zewnętrzne

Dalsza lektura