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, systemmaintained 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. 1 Introduction We propose to combine two simple techniques--- decl...
Citations
|
709
|
Constraint logic programming
– Jaffar, Lassez
- 1987
|
|
346
|
Constraint satisfaction in Logic programming
– Hentenryck
- 1989
|
|
262
|
An introduction to PROLOGIII
– Colmerauer
- 1990
|
|
238
|
The constraint logic programming language CHIP
– Dincbas, Hentenryck, et al.
- 1988
|
|
226
|
Semantic foundation of concurrent constraint programming
– Saraswat, Rinard, et al.
- 1991
|
|
177
|
Concurrent Constraint Programming Languages
– Saraswat
- 1993
|
|
109
|
An incremental constraint solver
– Freeman-Benson, Maloney, et al.
- 1990
|
|
85
|
Constraint logic programming languages
– Cohen
- 1990
|
|
67
|
Constraint hierarchies and logic programming
– Borning, Maher, et al.
- 1989
|
|
66
|
Hierarchical Constraint Logic Programming
– Wilson, Borning
- 1993
|
|
62
|
The definition and implementation of a computer programming language based on constraints
– Steele
- 1980
|
|
50
|
Lucid, the Dataflow Programming Language
– Wadge, Ashcroft
- 1985
|
|
35
|
Constraint Programming Languages
– Leler
- 1988
|
|
33
|
Type-checking Smalltalk
– Johnson
- 1986
|
|
30
|
Integrating constraints with an object-oriented Language
– Freeman-Benson, A
- 1992
|
|
23
|
Constraint Imperative Programming
– Freeman-Benson
- 1991
|
|
23
|
Constraint Technology for User-Interface Construction in ThingLab II
– Maloney, Borning, et al.
- 1989
|
|
21
|
Kaleidoscope: Mixing Objects, Constraints, and Imperative Programming
– Freeman-Benson
- 1990
|
|
15
|
Constraints: A uniform approach to aliasing and typing
– LAMPORT, SCHNEIDER
- 1985
|
|
13
|
Nygaard: Abstraction Mechanisms in the BETA Programming Language
– Kristensen, Madsen, et al.
- 1983
|
|
9
|
Properties of user interface systems and the Siri programming language
– Horn
- 1992
|
|
3
|
How I Wonder What You Are: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies
– DeltaStar
- 1990
|
|
2
|
CLP* and Constraint Abstraction
– Hickey
- 1989
|
|
2
|
Geometric Constraint Satisfaction Problems
– Kramer, Pabon, et al.
- 1991
|
|
1
|
Read-Only Annotations in Constraint Hierarchies
– Borning, Wilson, et al.
- 1991
|
|
1
|
Thesis Proposal: A ConstrainedObject Language for Reactive Program Implementation
– Horn
- 1990
|