CLOS
CLOS ( englanniksi Common Lisp Object System - “ Common Lisp 's object system ”, äännetään englanniksi see-loss [1] ) on olio-ohjelmointijärjestelmä, joka on osa Common Lisp -standardia - Lisp -kielistandardia . Lisäksi se on sisäänrakennettu muihin murteisiin, kuten EuLisp tai Emacs Lisp [2] . Alun perin lisäosaksi ehdotettu CLOS on otettu käyttöön osana ANSI CommonLisp -standardia.
CLOS:ssa on seuraavat ominaisuudet:
- Multiple dispatch (eli kutsuttavan menetelmän määräävät kaikki argumentit, ei vain ensimmäinen) tai " multimethods ".
- Siksi menetelmiä ei ole määritelty luokkien sisällä. Ne on käsitteellisesti ryhmitelty "yleistettyihin toimintoihin".
- CLOS ei tarjoa piiloa. Piilotuksen tarjoaa Common Lisp -pakettien toinen osa .
- Periytys voi aiheuttaa superluokan menetelmien yhdistämisen useilla ohjelmoijan valinnoilla, ei vain yksinkertaisella ohituksella.
- CLOS on dynaaminen, eli ei vain sisältö, vaan myös objektien rakenne voi muuttua ohjelman ollessa käynnissä. CLOS tukee luokan rakenteen muuttamista lennossa (vaikka tietyn luokan esiintymiä olisi jo olemassa), sekä tietyn ilmentymän luokan muuttamista CHANGE-CLASS -menetelmällä.
- Moninkertainen perintö .
Useimmat Common Lisp -toteutukset tukevat metaobject-protokollaa, joka on kuvattu artikkelissa The Art of the Metaobject Protocol [3] , mutta se ei sisälly standardiin.
Muistiinpanot
- ↑ Peter Norvig. "Tekoälyn ohjelmoinnin paradigmat: tapaustutkimukset yhteisessä Lispissä"
- ↑ "CLOS on standardi. Monet myyjät tarjoavat CLOS:ia. CLOSia (tai sen osia) käytetään oliopohjaisten ominaisuuksien lisäämiseen muihin Lisp-murteisiin, kuten EuLisp tai Emacs Lisp." sivu 110 Veitch
- ↑ Osa kirjasta, joka kuvaa suoraan MetaObject-protokollaa . Arkistoitu alkuperäisestä 21. tammikuuta 2013.
Kirjallisuus
- Ohjelmointikielten käsikirja (HPL), osa 4: Funktionaaliset ja loogiset ohjelmointikielet / Toimittaja Peter H. Salus. - Macmillan Technical Publishing, 1998. - 250 s. — ISBN 1-57870-011-6 . , Jim Veitch, CLOS, s. 107-158
Yhteinen Lisp |
---|
Toteutukset |
|
---|
Ohjelmisto | Kirjastot |
- CLSQL_
- -HTTP
- CL-PPCRE
- CLX
- rautainen
- Symbolinen verkko
- Harvinainen verkko
- Verkkolukot
- Hunchentoot
- AllegroCache
- ASDF
- CLiki
- CLIM
|
---|
Sovellukset |
|
---|
Kehitysympäristöt |
|
---|
|
---|
Julkaisut |
- the Language
- paradigmat
- Metaobjektiprotokollan
- _
- Käytännöllinen Common
- Olio-ohjelmointi Common
|
---|
suunnittelutoimikunta |
|
---|
muu |
|
---|