Kaleidoscope: mixing objects, constraints, and imperative programming
- 1 September 1990
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 25 (10) , 77-88
- https://doi.org/10.1145/97946.97957
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.Keywords
This publication has 11 references indexed in Scilit:
- An incremental constraint solverCommunications of the ACM, 1990
- Interactive type analysis and extended message splitting; optimizing dynamically-typed object-oriented programsPublished by Association for Computing Machinery (ACM) ,1990
- Constraint technology for user-interface construction in ThingLab IIPublished by Association for Computing Machinery (ACM) ,1989
- Three steps to views: extending the object-oriented paradigmPublished by Association for Computing Machinery (ACM) ,1989
- An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypesPublished by Association for Computing Machinery (ACM) ,1989
- Fabrik: a visual programming environmentPublished by Association for Computing Machinery (ACM) ,1988
- Constraint hierarchiesPublished by Association for Computing Machinery (ACM) ,1987
- Views: a way for pattern matching to cohabit with data abstractionPublished by Association for Computing Machinery (ACM) ,1987
- Constraint logic programmingPublished by Association for Computing Machinery (ACM) ,1987
- Object structure in the Emerald systemPublished by Association for Computing Machinery (ACM) ,1986