Skip to main content

Kaleidoscope: A Constraint Imperative Programming Language

  • Conference paper
Constraint Programming

Part of the book series: NATO ASI Series ((NATO ASI F,volume 131))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

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.

    Article  Google Scholar 

  • Chambers, C. (1992, June). Object-Oriented Multi-Methods in Cecil. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pp. 33–56.

    Google Scholar 

  • Cohen, J. (1990, July). Constraint logic programming languages. Communications of the ACM 33(7), 52–68.

    Google Scholar 

  • Colmerauer, A. (1990, July). An introduction to Prolog III. Communications of the ACM, 69–90.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Freeman-Benson, B., J. Maloney, and A. Borning (1990, January). An incremental constraint solver. Communications of the ACM 33(1), 54–63.

    Google Scholar 

  • Goldberg, A. and D. Robson (1983). Smalltalk-80: The Language and its Implementation. Addison-Wesley.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Jaffar, J. and J.-L. Lassez (1987, January). Constraint logic programming In Pro-ceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich.

    Google Scholar 

  • 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.

    Google Scholar 

  • Leler, W. (1987). Constraint Programming Languages. Addison-Wesley.

    Google Scholar 

  • Sannella, M. (1993, February). The SkyBlue Constraint Solver. Technical Report 92–07–02, Department of Computer Science and Engineering, University of Washington.

    Google Scholar 

  • 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.

    Google Scholar 

  • Saraswat, V. A. ( 1989, January). Concurrent Constraint Programming Languages. Ph. D. thesis, Carnegie-Mellon University, Computer Science Department.

    Google Scholar 

  • 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.

    Google Scholar 

  • Steele Jr., G. L. (1990). Common Lisp: The Language ( second ed. ). Bedford, Massachusetts: Digital Press.

    MATH  Google Scholar 

  • Van Hentenryck, P. (1989). Constraint Satisfaction in Logic Programming. Cambridge, MA: MIT Press.

    Google Scholar 

  • Van Hentenryck, P., II. Simonis, and M. Dincbas (1992, December). Constraint satisfaction using constraint logic programming. Artificial Intelligence 58(1–3), 113159.

    Google Scholar 

  • Warren, D. H. D. (1983, October). An abstract prolog instruction set. Technical Report 309, SRI Internatonal, Menlo Park, California.

    Google Scholar 

  • Wilson, M. and A. Horning (1993, July, August). Hierarchical constraint logic programming. Journal of Logic Programming 16(3 & 4), 277–318.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics