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.
CLOS поддерживает множественное наследование и нестандартизированный метаобъектный протокол.
[править] References
- ↑ "CLOS это стандарт. Многие поставщики предлагают CLOS. CLOS (или его части) используется для добавления объектно-ориентированных возможностей в другие диалекты Лиспа, такие как EuLisp или Emacs Lisp." стр. 110 Вейча
- "История и описание CLOS", Джим Вейч. Страницы 107-158 книги Handbook of Programming Languages, Volume IV: Functional and Logic Programming Languages, под ред. Питера Салюса. 1998 (1st edition), Macmillian Technical Publishing; ISBN 1-57870-011-6
|
|
|
|---|---|
| Используемые в разработке |
Ада • АПЛ • Ассемблер • ActionScript • ABAP/4 • AutoIt • AWK • BASIC • C • Кобол • C++ • C# • ColdFusion • D • dBase • Delphi • Erlang • Eiffel • Forth • Gambas • Фортран • Groovy • Haskell • Java • JavaScript • Icon • Limbo • Лисп • Lua • MATLAB • Object Pascal • Objective-C • Оберон • PowerBASIC • Parser • Паскаль • Perl • PHP • PureBasic • Python • ПЛ/1 • Пролог • Ruby • Tcl • Scheme • Smalltalk • SQL • Vala • Visual Basic • VB.NET |
| Академические | |
| IEC61131-3 |
Instruction List • ST • FBD • Ladder Diagram • SFC |
| Прочие | |
| Эзотерические | |

