This page is part of an archival collection and is no longer actively maintained.

It may contain outdated information and may not meet current or future WCAG accessibility standards. We provide this content, its subpages, and associated links for historical reference only. If you need assistance, please contact support@cs.washington.edu

The Design and Implementation of Kaleidoscope'90, A Constraint Imperative Programming Language

The Design and Implementation of Kaleidoscope'90, A Constraint Imperative Programming Language

Authors: Bjorn Freeman-Benson and Alan Borning

Published in Proceedings of the IEEE Computer Society 1992 International Conference on Computer Languages, April 1992, pages 174-180.


Abstract

Two major paradigms in computer programming languages are imperative and declarative programming. We describe a scheme for languages that integrate specific features from these two paradigms into a new framework: Constraint Imperative Programming. Along with the framework, we discuss the design and implementation of a particular instance of this framework, Kaleidoscope'90. From the imperative paradigm, constraint imperative programming adopts explicit control flow, state, and assignment. From the declarative paradigm, it adopts explicit, system-maintained constraints (relations that should hold). There is a strong practical motivation for making this integration: in a typical application, some portions are most clearly described using imperative constructs, while other portions are most clearly described using constraints. By using a constraint imperative language, the most suitable paradigm can be used as appropriate.


full paper (pdf). (Note: This file is missing one picture that is in the published paper -- a scroll bar -- but you can probably muddle along without it.)

Constraints home page