Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Common Lisp Object System (CLOS) – ANSI Common Lisp-те объектіге бағытталған бағдарламалау құралы. CLOS – C++ немесе Java сияқты көбінесе статикалық тілдердегі ООP мүмкіндіктерінен түбірлі өзгеше, қуатты динамикалық объект жүйесі. CLOS MIT Flavors және CommonLoops сияқты бұрынғы Lisp объект жүйелерінен шабыттанды, бірақ олардан көбірек мүмкіндіктерге ие. Бастапқыда қосымша ретінде ұсынылған CLOS, Common Lisp үшін ANSI стандартының бір бөлігі ретінде қабылданды және EuLisp немесе Emacs Lisp сияқты басқа Lisp диалектілеріне бейімделді.
The Common Lisp Object System (CLOS) is the facility for object oriented programming in ANSI Common Lisp. CLOS is a powerful dynamic object system which differs radically from the OOP facilities found in more static languages such as C++ or Java. CLOS was inspired by earlier Lisp object systems such as MIT Flavors and CommonLoops, although it is more general than either. Originally proposed as an add on, CLOS was adopted as part of the ANSI standard for Common Lisp and has been adapted into other Lisp dialects such as EuLisp or Emacs Lisp.
Метаобъект хаттамасы
ANSI Common Lisp стандартынан тыс, CLOS-қа кеңінен қолданылатын Metaobject Protocol (MOP) деп аталатын кеңейту бар. MOP, CLOS іске асыруының негіздеріне стандартты интерфейсті анықтайды, кластарды, слот сипаттамаларын, жалпы функцияларды және әдістердің өзіндік метакластардың мысалдары ретінде қарастырады, сондай-ақ жаңа метакластарды анықтауға және CLOS мінез-құлқының барлық аспектілерін өзгертуге мүмкіндік береді. CLOS MOP-тың икемділігі кейінірек Грегор Кицалес сияқты бірнеше инженерлер әзірлеген аспектіге бағытталған бағдарламалауға ұқсас. MOP, протоколдар жиынтығы арқылы бүкіл объект жүйесінің мінез-құлқын анықтайды. Бұл протоколдар CLOS терминдерімен анықталған. Осылайша, CLOS функционалдығын кеңейту немесе өзгерту арқылы жаңа объект жүйелерін құруға болады. "The Art of the Metaobject Protocol" кітабында CLOS MOP-тың қолданылуы және іске асырылуы туралы мәліметтер келтірілген. Common Lisp-тің әртүрлі іске асырылымдары Meta Object Protocol-ды әлдеқайда әртүрлі деңгейде қолдайды. Closer жобасы қажетті мүмкіндіктерді қамтамасыз етуге бағытталған.
Outside of the ANSI Common Lisp standard, there is a widely implemented extension to CLOS called the Metaobject Protocol (MOP). The MOP defines a standard interface to the underpinnings of the CLOS implementation, treating classes, slot descriptions, generic functions and methods themselves as instances of metaclasses, and allows the definition of new metaclasses and the modification of all CLOS behavior. The flexibility of the CLOS MOP prefigures aspect oriented programming, which was later developed by some of the same engineers, such as Gregor Kiczales. The MOP defines the behavior of the whole object system by a set of protocols. These are defined in terms of CLOS. Thus it is possible to create new object systems by extending or changing the provided CLOS functionality. The book The Art of the Metaobject Protocol describes the use and implementation of the CLOS MOP. The various Common Lisp implementations have slightly different support for the Meta Object Protocol. The Closer project aims to provide the missing features.
Ескі Lisp-ге негізделген объекттік жүйелердің әсері
Flavors (және оның ізбасары New Flavors) MIT Lisp машинасының объектілік жүйесі болды. Lisp машинасының операциялық жүйелерінің көп бөлігі және оған арналған көптеген қосымшалар Flavors немесе New Flavors-ты пайдаланды. Flavors көптеген мұрагерлік және миксиндерді, басқа да мүмкіндіктермен бірге енгізді. Flavors көбінесе қолданыстан шықты, бірақ Common Lisp үшін іске асырылымдары бар. Flavors хабар алмасу парадигмасын қолданды. New Flavors жалпы функцияларды енгізді. CommonLoops, LOOPS-тың (Xerox Interlisp D-ден) ізбасары болды. CommonLoops Common Lisp үшін іске асырылды. Portable CommonLoops (PCL) деп аталатын портативті іске асырылым, CLOS-тың алғашқы іске асырылымы болды. PCL кеңінен таралды және әлі де бірнеше Common Lisp іске асырылымдарының CLOS іске асырылымының негізін құрайды. PCL көбінесе портативті Common Lisp-те іске асырылады, тек бірнеше жүйеге тәуелді бөліктері бар.
Flavors (and its successor New Flavors) was the object system on the MIT Lisp Machine. Large parts of the Lisp Machine operating systems and many applications for it use Flavors or New Flavors. Flavors introduced multiple inheritance and mixins, among other features. Flavors is mostly obsolete, though implementations for Common Lisp do exist. Flavors was using the message passing paradigm. New Flavors introduced generic functions. CommonLoops was the successor of LOOPS (from Xerox Interlisp D). CommonLoops was implemented for Common Lisp. A portable implementation called Portable CommonLoops (PCL) was the first implementation of CLOS. PCL is widely ported and still provides the base for the CLOS implementation of several Common Lisp implementations. PCL is implemented mostly in portable Common Lisp with only a few system dependent parts.