Лучшие вопросы
Таймлайн
Чат
Перспективы

CLOS

Из Википедии, свободной энциклопедии

CLOS
Remove ads

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

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

В CLOS реализована множественная диспетчеризация, то есть вызываемый метод определяется всеми аргументами, а не только первым, или «мультиметоды». Поэтому методы не определяются внутри классов. Они концептуально группируются в «обобщённые функции».

CLOS не обеспечивает сокрытия. Сокрытие обеспечивается другой частью Common Lisp — пакетами. Наследование может приводить к тому, что методы суперклассов комбинируются различными способами по выбору программиста, а не только простым переопределением.

CLOS является динамическим, то есть не только содержимое, но и структура объектов может меняться во время работы программы. CLOS поддерживает изменение структуры класса на лету (даже если экземпляры данного класса уже существуют), равно как и смену класса данного экземпляра с помощью метода CHANGE-CLASS. Поддерживается множественное наследование.

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

Remove ads

Примечания

Литература

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads