stringtranslate.com

Калейдоскоп (язык программирования)

Язык программирования Kaleidoscope — это язык программирования ограничений, встраивающий ограничения в императивный объектно-ориентированный язык. Он добавляет ключевые слова always , once и assert .. during (ранее while .. assert ) для создания утверждений об инвариантах отношений. Объекты имеют конструкторы ограничений, которые не являются методами, для обеспечения значений пользовательских типов данных.

Существует три версии Калейдоскопа, которые показывают эволюцию от декларативного к все более императивному стилю. Различия между ними следующие. [1]

Пример

Сравните два фрагмента кода, оба из которых позволяют пользователю перетаскивать уровень ртути в простом графическом термометре с помощью мыши.

Без ограничений:

пока мышь.кнопка = вниз делать старый <- mercury.top; mercury.top <- mouse.location.y; температура <- ртутный столб.высота / шкала; display_number( температура ); если старый < mercury.top тогда delta_grey( старый, mercury.top ); elseif старый > mercury.top тогда delta_white( mercury.top, old ); конец, если;конец пока;

С ограничениями:

всегда: температура = высота ртутного столба / шкала;всегда: белый прямоугольник (термометр);всегда: серый прямоугольник ( ртуть );всегда: отображать число (температура);пока мышь.кнопка = вниз делать mercury.top = мышь.location.y;конец пока;

Ссылки

  1. ^ Лопес, Гас; Фримен-Бенсон, Бьорн; Борнинг, Алан (1993). «Калейдоскоп: язык программирования с императивными ограничениями» (PDF) . constraints.cs.washington.edu . Получено 30.12.2023 .