Kaleidoscope: mixing objects, constraints, and imperative programming

  • Authors:
  • Bjorn N. Freeman-Benson

  • Affiliations:
  • University of Washington, Dept. of Comp. Sci and Eng., FR-35, Seattle, WA

  • Venue:
  • OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

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.