Abstract
Constraints are declarative statements of relations among elements of the language's computational domain, e.g., integers, booleans, strings, and other objects. Orthogonally, the tools of object-oriented programming, including encapsulation, inheritance, and dynamic message binding, provide important mechanisms for extending a language's domain. Although the integration of constraints and objects seems obvious and natural, one basic obstacle stands in the way: objects provide a new, larger, computational domain, which the language's embedded constraint solver must accommodate. In this paper we list some goals and non-goals for an integration of constraints and object oriented language features, outline previous approaches to this integration, and describe the scheme we use in Kaleidoscope'91, our object-oriented constraint imperative programming language. Kaleidoscope'91 uses a class-based object model, multi-methods, and constraint constructors to integrate cleanly the encapsulation and abstraction of a state-of-the-art object-oriented language with the declarative aspects of constraints.
Preview
Unable to display preview. Download preview PDF.
References
P. Avesani, A. Perini, and F. Ricci. COOL: An Object System with Constraints. In TOOLS 2, June 1990.
Paul Barth. An Object-Oriented Approach to Graphical Interfaces. ACM Transactions on Graphics, 5(2):142–172, April 1986.
Eric A. Bier and Maureen C. Stone. Snap-Dragging. In Proceedings of SIGGRAPH'86, Dallas, Texas, August 1986. Also in Computer Graphics 20(4), August 1986.
Alan Borning, Michael Maher, Amy Martindale, and Molly Wilson. Constraint Hierarchies and Logic Programming. In Proceedings of the Sixth International Conference on Logic Programming, pages 149–164, Lisbon, June 1989.
Alan H. Borning. The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory. ACM Transactions on Programming Languages and Systems, 3(4):353–387, October 1981.
Alan H. Borning and Danial H. H. Ingalls. Multiple Inheritance in Smalltalk-80. In Proceedings of the National Conference on Artificial Intelligence, pages 234–237, Pittsburgh, Pennsylvania, August 1982. American Association for Artificial Intelligence.
Timothy A. Budd. Blending Imperative and Relational Programming. IEEE Software, 8(1), January 1991.
Timothy A. Budd. Multiparadigm Data Structures in Leda. In Proceedings of the IEEE Computer Society 1992 International Conference on Computer Languages, April 1992.
Craig Chambers. Object-Oriented Multi-Methods in Cecil. In Proceedings of the European Conference on Object-Oriented Programming, July 1992.
Craig Chambers and David Ungar. Making Pure Object-Oriented Languages Practical. In Proceedings of the 1991 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1–15, Phoenix, October 1991.
Jacques Cohen. Constraint Logic Programming Languages. Communications of the ACM, 33(7):52–68, July 1990.
Eric Cournarie and Michel Beaudouin-Lafon. ALIEN: A Prototype-based Constraint System. In Preprints of the Second Eurographics Workshop on Object Oriented Graphics, pages 93–114, Texel, The Netherlands, June 1991. To be published in revised form by Springer-Verlag.
L. Peter Deutsch and Allan M. Schiffman. Efficient Implementation of the Smalltalk-80 System. In Proceedings of the Eleventh Annual Principles of Programming Languages Symposium, pages 297–302, Salt Lake City, Utah, January 1984. ACM.
Bjorn Freeman-Benson. A Module Compiler for ThingLab II. In Proceedings of the 1989 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, New Orleans, October 1989. ACM.
Bjorn Freeman-Benson. Kaleidoscope: Mixing Objects, Constraints, and Imperative Programming. In Proceedings of the 1990 Conference on Object-Oriented Programming Systems, Languages, and Applications, and European Conference on Object-Oriented Programming, pages 77–88, Ottawa, Canada, October 1990. ACM.
Bjorn Freeman-Benson, John Maloney, and Alan Borning. An Incremental Constraint Solver. Communications of the ACM, 33(1):54–63, January 1990.
Bjorn Freeman-Benson, Molly Wilson, and Alan Borning. DeltaStar: A General Algorithm for Incremental Satisfaction of Constraint Hierarchies. In Proceedings of the Eleventh Annual IEEE Phoenix Conference on Computers and Communications, Scottsdale, Arizona, March 1992. IEEE. To appear.
Bjorn N. Freeman-Benson. Constraint Imperative Programming. PhD thesis, University of Washington, Department of Computer Science and Engineering, July 1991. Published as Department of Computer Science and Engineering technical report 91-07-02.
James A. Gosling. Algebraic Constraints. PhD thesis, Carnegie-Mellon University, May 1983. Published as CMU Computer Science Department tech report CMU-CS-83-132.
Bruce Horn. A Constrained-Object Language for Reactive Program Implementation. Technical Report CMU-CS-91-152, School of Computer Science, Carnegie-Mellon University, June 1991.
Joxan Jaffar and Jean-Louis Lassez. Constraint Logic Programming. In Proceedings of the 14th ACM Principles of Programming Languages Conference, Munich, January 1987.
Joxan Jaffar, Spiro Michaylov, Peter Stuckey, and Roland Yap. The CLP(R) Language and System. Technical Report CMU-CS-90-181, School of Computer Science, Carnegie Mellon University, October 1990. To appear in ACM Transactions on Programming Languages and Systems.
Kenneth Kahn, Eric Tribble, Mark Miller, and Daniel Bobrow. Objects in Concurrent Logic Programming Languages. In Proceedings of the 1986 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, pages 242–257, Portland, Oregon, September 1986. ACM.
Kenneth M. Kahn. Objects—A Fresh Look. In Proceedings of the European Conference on Object-Oriented Programming, July 1990.
Glenn Kramer, Jahir Pabon, Walid Keirouz, and Robert Young. Geometric Constraint Satisfaction Problems. In Working Notes of the AAAI Spring Symposium on Constraint-Based Reasoning, pages 242–251, Stanford, March 1991.
Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger MØller Pedersen, and Kristen Nygaard. Object Oriented Programming in the Beta Programming Language. Draft of unpublished book, 1991.
Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger MØller Pederson, and Kirsten Nygaard. Abstraction Mechanisms in the BETA Programming Language. In Proceedings of the Tenth Annual Principles of Programming Languages Symposium, Austin, Texas, January 1983. ACM.
Wilf R. LaLonde and John R. Pugh. Inside Smalltalk, volume II. Prentice Hall, Englewood Cliffs, NJ, 1991.
William Leler. Constraint Programming Languages. Addison-Wesley, 1987.
Alan K. Mackworth. Consistency in Networks of Relations. Artificial Intelligence, 8(1):99–118, 1977.
John Maloney. Using Constraints for User Interface Construction. PhD thesis, Department of Computer Science and Engineering, University of Washington, August 1991. Published as Department of Computer Science and Engineering technical report 91-08-12.
Brad A. Myers, Dario Guise, Roger B. Dannenberg, Brad Vander Zanden, David Kosbie, Philippe Marchal, and Ed Pervin. Comprehensive Support for Graphical, Highly-Interactive User Interfaces: The Garnet User Interface Development Environment. IEEE Computer, 23(11):71–85, November 1990.
Brad A. Myers, Dario Guise, Roger B. Dannenberg, Brad Vander Zanden, David Kosbie, Philippe Marchai, Ed Pervin, Andrew Mickish, and John A. Kolojejchick. The Garnet Toolkit Reference Manuals: Support for Highly-Interactive Graphical User Interfaces in Lisp. Technical Report CMU-CS-90-117, Computer Science Dept, Carnegie Mellon University, March 1990.
Greg Nelson and Derek C. Oppen. Simplification by Cooperating Decision Procedures. In Proceedings of the Fifth ACM Symposium on Principles of Programming Languages. ACM SIGPLAN, 1978.
Vijay Anand Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, Computer Science Department, January 1989.
E. Shapiro and A. Takeuchi. Object-Oriented Programming in Concurrent Prolog. In Ehud Shapiro, editor, Concurrent Prolog: Collected Papers, volume 2, chapter 21. MIT Press, 1987.
Remco C. Veltkamp. A Quantum Approach to Geometric Constraint Satisfaction. In Preprints of the Second Eurographics Workshop on Object Oriented Graphics, pages 53–67, Texel, The Netherlands, June 1991. To be published in revised form by Springer-Verlag.
William W. Wadge and Edward A. Ashcroft. Lucid, the Dataflow Programming Language. Academic Press, London, 1985.
Michael Wilk. Equate: An Object-Oriented Constraint Solver. In Proceedings of the 1991 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 286–298, Phoenix, October 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Freeman-Benson, B.N., Borning, A. (1992). Integrating constraints with an object-oriented language. In: Madsen, O.L. (eds) ECOOP ’92 European Conference on Object-Oriented Programming. ECOOP 1992. Lecture Notes in Computer Science, vol 615. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053042
Download citation
DOI: https://doi.org/10.1007/BFb0053042
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55668-8
Online ISBN: 978-3-540-47268-1
eBook Packages: Springer Book Archive