Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Flavors , [1] раннее объектно-ориентированное расширение Lisp, разработанное Говардом Кэнноном в лаборатории искусственного интеллекта Массачусетского технологического института для машины Lisp и ее языка программирования Lisp Machine Lisp , был первым языком программирования, который включал миксины . [2] Symbolics использовала его в своих машинах на Лиспе и, в конечном итоге, доработала его до New Flavors ; и оригинальный, и новый Flavors были моделями OO с передачей сообщений . Это оказало огромное влияние на развитие объектной системы Common Lisp (CLOS). [3]

Реализации Flavors также доступны для Common Lisp . [4]

В New Flavors отправка сообщений заменена вызовом общих функций .

Предлагает варианты :beforeи :afterдемоны с комбинацией методов по умолчанию (называемой :daemon).

Сравнение вкусов и функций CLOS [ править ]

Flavors предлагает несколько функций, которых нет в CLOS:

  • Обертки
  • Автоматический лексический доступ к слотам с использованием переменных внутри методов.
  • Внутренние функции аромата, макросы и подстановки.
  • Автоматически сгенерированные конструкторы.
  • DEFFLAVORопции: :required-methods, :abstract-flavor, :mixture.
  • SEND функция отправки сообщений.

CLOS предлагает следующие функции, которых нет в Flavors:

  • Мультиметоды
  • Методы, специализированные на отдельных объектах (через EQL).
  • Методы, специализирующиеся на типах Common Lisp (символ, целое число, ...).
  • Методы, специализирующиеся на типах def-struct.
  • Слоты классов.

Терминология [ править ]

Ссылки [ править ]

  1. ^ Ховард Кэннон, Flavors: неиерархический подход к объектно-ориентированному программированию , Symbolics Inc., 1982
  2. ^ стр. 46 Томпсона, К.В., Росс, К.М., Теннант, Х.Р., и Саенс, Р.М. 1983. «Создание удобных интерфейсов на основе меню на естественном языке для баз данных». В материалах 9-й международной конференции по очень большим базам данных (31 октября - 2 ноября 1983 г.). М. Школьник и К. Танос, ред. Очень большие базы данных. Издательство Морган Кауфманн, Сан-Франциско, Калифорния, 43–55.
  3. ^ « Symbolics (1985) использовала New Flavors (модель отправки сообщений, такая как Java сегодня), Xerox использовала CommonLoops , Lisp Machine Incorporated использовала Object Lisp (Bobrow, 1986), а Hewlett-Packard предлагала использовать Common Objects (Kempf , 1987). Группы соперничали друг с другом в контексте усилий по стандартизации Common Lisp в то время и, наконец, остановились на стандарте, основанном на CommonLoops и New Flavors ». п. 108 Veitch 1998.
  4. ^ Ароматизаторы для Allegro CL
  • «История и описание CLOS» Джима Вейтча. Страницы 107–158 Справочника по языкам программирования, Том IV: Функциональные и логические языки программирования , изд. Питер Х. Салус . 1998 (1-е издание), Macmillan Technical Publishing; ISBN  1-57870-011-6

Дальнейшее чтение [ править ]