Interested Article - CLOS

Стандартная группировка методов в ANSI Common Lisp

CLOS ( англ. Common Lisp Object System — «объектная система Common Lisp ’а», произносится как англ. see-loss ) — система объектно-ориентированного программирования , являющаяся частью Common Lisp — стандарта языка Лисп . Кроме того, её встраивают в другие диалекты, такие как EuLisp или Emacs Lisp . Вначале предложенная как дополнение, CLOS была принята в качестве части стандарта ANSI CommonLisp.

CLOS имеет следующие особенности:

  • Множественная диспетчеризация (то есть вызываемый метод определяется всеми аргументами, а не только первым), или « мультиметоды ».
  • Поэтому методы не определяются внутри классов. Они концептуально группируются в «обобщённые функции».
  • CLOS не обеспечивает сокрытия. Сокрытие обеспечивается другой частью Common Lisp — пакетами.
  • Наследование может приводить к тому, что методы суперклассов комбинируются различными способами по выбору программиста, а не только простым переопределением.
  • CLOS является динамическим, то есть не только содержимое, но и структура объектов может меняться во время работы программы. CLOS поддерживает изменение структуры класса на лету (даже если экземпляры данного класса уже существуют), равно как и смену класса данного экземпляра с помощью метода CHANGE-CLASS.
  • Множественное наследование .

Большинство реализаций Common Lisp поддерживают метаобъектный протокол, описанный в книге «The Art of the Metaobject Protocol» , но не включённый в стандарт.

Примечания

  1. Peter Norvig. «Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp»
  2. «CLOS это стандарт. Многие поставщики предлагают CLOS. CLOS (или его части) используется для добавления объектно-ориентированных возможностей в другие диалекты Лиспа, такие как EuLisp или Emacs Lisp.» стр. 110 Вейча
  3. (англ.) . Дата обращения: 16 июня 2023. Архивировано из 21 января 2013 года.

Литература

  • Handbook of Programming Languages (HPL), Volume 4: Functional and Logic Programming Languages (англ.) / Editor Peter H. Salus. — Macmillan Technical Publishing, 1998. — 250 p. — ISBN 1-57870-011-6 . , Jim Veitch, on CLOS, P. 107—158
Источник —

Same as CLOS