CLOS
Qiyofa
CLOS (inglizcha: Common Lisp Object System — „Common Lisp obyekt tizimi“, inglizcha: see-loss[1] deb talaffuz qilinadi) — Lisp tili uchun standart boʻlgan Common Lisp ning bir qismi boʻlgan obyektga yoʻnaltirilgan dasturlash tizimidir. Bundan tashqari, u EuLisp yoki Emacs Lisp[2] kabi boshqa dialektlarga kiritilgan. Dastlab qoʻshimcha sifatida taklif qilingan CLOS ANSI CommonLisp standartining bir qismi sifatida qabul qilingan.
CLOS quyidagi xususiyatlarga ega:
- Bir nechta dispetcherlik (yaʼni chaqiriladigan uslub faqat birinchi emas, balki barcha argumentlar bilan belgilanadi) yoki „multimetodlar“.
- Shuning uchun usullar sinflar ichida aniqlanmaydi. Ular kontseptual jihatdan „umumiy funksiyalar“ ga guruhlangan.
- CLOS hech qanday yashirishni taʼminlamaydi. Yashirish Common Lisp ning boshqa qismi, paketlar tomonidan taʼminlanadi.
- Meros, superklass usullarini oddiy qayta aniqlash emas, balki dasturchi tanlagan turli usullarda birlashtirishga olib kelishi mumkin.
- CLOS dinamik hisoblanadi, yaʼni dastur ishlayotgan vaqtda nafaqat tarkibi, balki obyektlarning tuzilishi ham oʻzgarishi mumkin. CLOS tezda sinf tuzilishini oʻzgartirishni (hatto ushbu sinfning namunalari allaqachon mavjud boʻlsa ham), shuningdek, CHANGE-CLASS usuli yordamida berilgan misol sinfini oʻzgartirishni qoʻllab-quvvatlaydi.
- Koʻp sonli meros[3].
Common Lisp ning aksariyat ilovalari „The Art of Metaobject Protocol“ kitobida tasvirlangan, ammo standartga kiritilmagan metaobyekt protokolini qoʻllab-quvvatlaydi.
Manbalar
[tahrir | manbasini tahrirlash]- ↑ Peter Norvig. „Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp“
- ↑ "CLOS eto standart. Mnogie postavщiki predlagayut CLOS. CLOS (ili ego chasti) ispolzuetsya dlya dobavleniya obʼektno-orientirovannix vozmojnostey v drugie dialekti Lispa, takie kak EuLisp ili Emacs Lisp." str. 110 Veycha
- ↑ Часть книги, непосредственно описывающая MetaObject Protocol (Wayback Machine saytida 2013-01-21 sanasida arxivlangan)
Adabiyotlar
[tahrir | manbasini tahrirlash]- Handbook of Programming Languages (HPL), Volume 4: Functional and Logic Programming Languages. Macmillan Technical Publishing, 1998. ISBN 1-57870-011-6. , Jim Veitch, on CLOS, P. 107—158