- CLOS
-
CLOS (англ. Common Lisp Object System — «объектная система Common Lisp’а») — система объектно-ориентированного программирования, являющаяся частью Common Lisp — стандарта языка Лисп. Кроме того, её встраивают в другие диалекты, такие как EuLisp или Emacs Lisp[1]. Вначале предложенная как дополнение, CLOS была принята в качестве части стандарта ANSI CommonLisp.
CLOS имеет следующие особенности :
- Множественная диспетчеризация (то есть вызываемый метод определяется всеми аргументами, а не только первым), или «мультиметоды».
- Поэтому методы не определяются внутри классов. Они концептуально группируются в «обобщённые функции».
- CLOS не обеспечивает сокрытия. Сокрытие обеспечивается другой частью Common Lisp — пакетами.
- Наследование может приводить к тому, что методы суперклассов комбинируются различными способами по выбору программиста, а не только простым переопределением.
- CLOS является динамическим, то есть не только содержимое, но и структура объектов может меняться во время работы программы. CLOS поддерживает изменение структуры класса на лету (даже если экземпляры данного класса уже существуют), равно как и смену класса данного экземпляра с помощью метода CHANGE-CLASS.
- Множественное наследование
Большинство реализаций Common Lisp поддерживают метаобъектный протокол, описанный в книге «The Art of the Metaobject Protocol »[2], но не включенный в стандарт.
Примечания
- ↑ «CLOS это стандарт. Многие поставщики предлагают CLOS. CLOS (или его части) используется для добавления объектно-ориентированных возможностей в другие диалекты Лиспа, такие как EuLisp или Emacs Lisp.» стр. 110 Вейча
- ↑ Часть книги, непосредственно описывающая MetaObject Protocol
Литература
- Handbook of Programming Languages (HPL), Volume 4: Functional and Logic Programming Languages / Editor Peter H. Salus. — Macmillan Technical Publishing, 1998. — 250 с. — ISBN 1-57870-011-6, Jim Veitch, on CLOS, P. 107—158
Основные языки программирования (сравнение • IDE • история • хронология) Используемые
в разработкеАда • APL • Язык ассемблера • ActionScript • ABAP/4 • AutoIt • AWK • Бейсик • Си • Кобол • C++ • C# • Cω • Clarion • Clojure • ColdFusion • Common Lisp • D • dBase • Delphi • Eiffel • Erlang • Euphoria • F# • Форт • Фортран • Gambas • Go • Groovy • HAL/S • Haskell • Icon • Java • JavaScript • Limbo • Lua • Модула-3 • Object Pascal • Objective-C • OCaml • Oz • Parser • Паскаль • Компонентный Паскаль • Perl • PHP • PowerBASIC • Python • ПЛ/1 • Пролог • Ruby • Scala • Scheme • Smalltalk • SQL • PL/SQL • Tcl • Vala • Visual Basic (.NET)
Академические IEC 61131-3 Instruction List • ST • FBD • Ladder Diagram (LD) • SFC
Прочие Эзотерические Визуальные Категория:- Common Lisp
Wikimedia Foundation. 2010.