Калейдоскоп (бағдарламалау тілі) - Kaleidoscope (programming language)

The Калейдоскоп бағдарламалау тілі Бұл бағдарламалауды шектеу тілдік енгізу шектеулер ішіне императивті объектіге бағытталған тіл. Ол кілт сөздерді қосады әрқашан, бір рет, және бекіту..кезінде (бұрын уақыт..бекіту) реляциялық инварианттар туралы мәлімдеме жасау. Нысандарда қолданушы анықтаған деректер типтерінің мағыналарын орындау үшін әдістер емес, шектеуші конструкторлар бар.

Калейдоскоптың үш нұсқасы бар, олар декларативтен барған сайын императивті стильге дейінгі эволюцияны көрсетеді. Олардың арасындағы айырмашылықтар келесідей.[1]

90. КалейдоскопКалейдоскоп'91Калейдоскоп'93
Шектеуді бағалауЖалқауАсығысАсығыс
АйнымалыларАғындарды ұстаңызАғындарды ұстаңызИмперативті
Бір мезгілде болатын шектеулерҚатаңҚатаңҚатаң емес
СинтаксисSmalltalk тәріздіАлгол тәріздіАлгол тәрізді
Шектеу моделіНақтылауНақтылауПеруртация
Диспетчерлеу әдісіБойдақБірнешеБірнеше
ТапсырмаШектеу ретіндеШектеу ретіндеДеструктивті

Мысал

Екі код сегментін салыстырыңыз, екеуі де пайдаланушыға сынап деңгейін қарапайым графикалық термометрде тышқанмен сүйреуге мүмкіндік береді.

Шектеулерсіз:

while mouse.button = down do do old <- mercury.top; сынап.жоғары <- тышқан.орны.y; температура <- сынап. биіктік / шкала; егер ескі <сынап.топ, содан кейін дельта_грей (ескі, сынап.топ); display_number (температура); elseif ескі> сынап.топ содан кейін delta_white (сынап.жоғары, ескі); display_number (температура); соңы; егер аяқталса;

Шектеулермен:

әрқашан: температура = сынап. биіктік / шкала; әрқашан: ақ тіктөртбұрыш (термометр); әрдайым: сұр түсті тікбұрыш (сынап); әрқашан: дисплей нөмірі (температура); тінтуір.түймешік = төмен сынап.топ = тышқан.орналасу.y ; аяқталғанша;

Әдебиеттер тізімі

  • Лопес, Гус; Бьорн Фриман-Бенсон; Алан Борнинг (1994). «Калейдоскоп: Императивті бағдарламалаудың шектеулі тілі». Шектеу бағдарламалау. Шпрингер-Верлаг. 313–329 бет.
  • Марриотт, Ким; Питер Дж. Стуки (1998). Шектеулермен бағдарламалау: кіріспе. MIT түймесін басыңыз. ISBN  0-262-13341-5