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