Abstract
The Constraint Imperative Programming (CIP) family of languages integrates constraints and imperative, object-oriented programming. In addition to combining the useful features of both paradigms, there are synergistic effects of this integration, such as the ability to define constraints over user-defined domains. We discuss characteristics of the CIP family and provide a rationale for its creation. The synergy of constraints and objects imposes additional challenges for the provision of constructs, such as object identity and class membership, that are well-understood in conventional language paradigms. We discuss the benefits and challenges of combining the constraint and imperative paradigms, and present our current ideas in the context of the design and implementation of the Kaleidoscope’93 language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Borning, A., B. Freeman-Benson, and M. Wilson (1992, September). Constraint hierarchies. Lisp and Symbolic Computation 5 (3), 223–270.
Chambers, C. (1992, June). Object-Oriented Multi-Methods in Cecil. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pp. 33–56.
Cohen, J. (1990, July). Constraint logic programming languages. Communications of the ACM 33(7), 52–68.
Colmerauer, A. (1990, July). An introduction to Prolog III. Communications of the ACM, 69–90.
Freeman–Benson, B. ( 1991, July). Constraint Imperative Programming. Ph. D. thesis, University of Washington, Department of Computer Science and Engineering. Published as Department of Computer Science and Engineering Technical Report 91–07–02.
Freeman-Benson, B. and A. Borning (1992a, April). The design and implementation of Kaleidoscope’90, a constraint imperative programming language. In Proceedings of the IEEE Computer Society International Conference on Computer Languages, pp. 174–180.
Freeman-Benson, B. and A. Borning (1992b, June). Integrating constraints with an object-oriented language. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pp. 268–286.
Freeman-Benson, B., J. Maloney, and A. Borning (1990, January). An incremental constraint solver. Communications of the ACM 33(1), 54–63.
Goldberg, A. and D. Robson (1983). Smalltalk-80: The Language and its Implementation. Addison-Wesley.
Horn, B. (1992a, October). Constraint patterns as a basis for object-oriented constraint programming. In Proceedings of the 1992 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Vancouver, British Columbia, pp. 218–233.
Horn, B. (1992b). Properties of user interface systems and the Siri programming language. In B. Myers (Ed.), Languages for Developing User Interfaces, pp. 211–236. Boston: Jones and Bartlett.
Jaffar, J. and J.-L. Lassez (1987, January). Constraint logic programming In Pro-ceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich.
Jaffar, J., S. Michaylov, P. Stuckey, and R. Yap (1992, July). The CLP(R) language and system. ACM Transactions on Programming Languages and Systems 14(3), 339–395.
Leler, W. (1987). Constraint Programming Languages. Addison-Wesley.
Sannella, M. (1993, February). The SkyBlue Constraint Solver. Technical Report 92–07–02, Department of Computer Science and Engineering, University of Washington.
Sannella, M., J. Maloney, B. Freeman-Benson, and A. Borning (1993, May). Multi-way versus One-way Constraints in User Interfaces: Experience with the DeltaBlue Algorithm. Software—Practice and Experience 23(5), 529–566.
Saraswat, V. A. ( 1989, January). Concurrent Constraint Programming Languages. Ph. D. thesis, Carnegie-Mellon University, Computer Science Department.
Steele Jr., G. L. (1980, August). The Definition and Implementation of a Computer Programming Language Based on Constraints. Ph. D. thesis, MIT. Published as MIT-AI TR 595, August 1980.
Steele Jr., G. L. (1990). Common Lisp: The Language ( second ed. ). Bedford, Massachusetts: Digital Press.
Van Hentenryck, P. (1989). Constraint Satisfaction in Logic Programming. Cambridge, MA: MIT Press.
Van Hentenryck, P., II. Simonis, and M. Dincbas (1992, December). Constraint satisfaction using constraint logic programming. Artificial Intelligence 58(1–3), 113159.
Warren, D. H. D. (1983, October). An abstract prolog instruction set. Technical Report 309, SRI Internatonal, Menlo Park, California.
Wilson, M. and A. Horning (1993, July, August). Hierarchical constraint logic programming. Journal of Logic Programming 16(3 & 4), 277–318.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lopez, G., Freeman-Benson, B., Borning, A. (1994). Kaleidoscope: A Constraint Imperative Programming Language. In: Mayoh, B., Tyugu, E., Penjam, J. (eds) Constraint Programming. NATO ASI Series, vol 131. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-85983-0_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-85983-0_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-85985-4
Online ISBN: 978-3-642-85983-0
eBook Packages: Springer Book Archive