Kaleidoscope
A constraints imperative object-oriented programming language.- Kaleidoscope: A Constraint Imperative Programming Language.
- Implementing Constraint Imperative Programming Languages: The Kaleidoscope'93 Virtual Machine.
- The Design and Implementation of Kaleidoscope'90 -- A Constraint Imperative Programming Language.
- Kaleidoscope: mixing objects, constraints, and imperative programming
Abstract
Kaleidoscope is an object-oriented language being designed to integrate the traditional imperative object-oriented paradigm with the less traditional declarative constraint paradigm. imperative state changes provide sequencing while declarative constraints provide object relations. A variables as streams semantics enables the declarative-imperative integration. A running example is used to illustrate the language concepts—a reimplementation of the MacDraw II dashed-lines dialog box. The example is in three parts: the input channel, using imperative code to sequence through modes; the output channel, using constraints to update the display; and the internal relations, using constraints to maintain the data objects' consistency requirements. The last sections of the paper discuss views as a natural result of combining objects with constraints, as well as related and future work.