Abstract
Constraint imperative programming is an integration of declarative constraints and imperative object-oriented programming. The primary goal of this integration is to use constraints to express relations among objects explicitly—relations that were implicit in the code in previous languages. However, one of the fundamental concepts of object-oriented programming, object identity, can result in implicit relations, even when explicit identity constraints are supported. We analyze the problem and propose a solution—identity constraints—which we have implemented in our Kaleidoscope'93 language. This solution is understandable, efficiently implementable, and compatible with the Kaleidoscope constraint model.
Preview
Unable to display preview. Download preview PDF.
References
Alan Borning, Bjorn Freeman-Benson, and Molly Wilson. Constraint Hierarchies. Lisp and Symbolic Computation, 5(3): 223–270, September 1992.
Ole-Johan Dahl and Kristen Nygaard. SIMULA — An ALGOL-Based Simulation Language. Communications of the ACM, 9(9): 671–678, September 1966.
Bjorn Freeman-Benson, John Maloney, and Alan Borning. An Incremental Constraint Solver. Communications of the ACM, 33(1): 54–63, January 1990.
Bjorn N. Freeman-Benson. Constraint Imperative Programming. Ph.D. 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.
Bjorn Freeman-Benson and Alan Borning. Integrating Constraints with an Object-Oriented Language. In Proceedings of the 1992 European Conference on Object-Oriented Programming, pages 268–286, June 1992.
John Hogg. Islands: Aliasing Protection In Object-Oriented Languages. In Proceedings of the 1991 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Phoenix, Arizona, pages 271–285, October 1991.
John Hogg, Doug Lea, Alan Wills, Dennis deChampeaux, and Richard Holt. The Geneva Convention on the Treatment of Object Aliasing. OOPS Messenger, 2(3): 11–16, April 1992.
Bruce Horn. 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, pages 218–233, October 1992.
Bruce Horn. Constrained Objects. PhD Thesis, Carnegie-Mellon University, Computer Science Department, November 1993. Published as Carnegie Mellon School of Computer Science TR CMU-CS-93-154.
Paul Hudak. Conception, Evolution, and Application of Functional Programming Languages. Computing Surveys, 21(3): 359–411, September 1989.
Joxan Jaffar and Jean-Louis Lassez. Constraint Logic Programming. In Proceedings of the Fourteenth ACM Principles of Programming Languages Conference, Munich, pages 111–119, January 1987.
Kenneth Kahn. Objects — A Fresh Look. In Proceedings of the 1989 European Conference on Object-Oriented Programming, pages 207–223, July 1989.
Setrag Khoshafian and George Copeland. Object Identity. In Proceedings of the 1986 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Portland, Oregon, pages 406–416, September–October 1986.
Nils Klarlund and Michael Schwartzbach. Graph Types. In Proceedings of the 1993 ACM Principles of Programming Languages Conference, June 1993.
S. Krogdahl and K.A. Olsen. Modular and Object-Oriented Programming. DataTid No. 9, Sept. 1986 (in Norwegian).
Butler Lampson, James Horning, Ralph London, James Mitchell, and Gerald Popek. Report on the Programming Language Euclid. Technical Report CSL-81-12, XEROX Palo Alto Research Center, October 1981.
William Landi and Barbara Ryder. A Safe Approximate Algorithm for Interprocedural Pointer Aliasing. In Proceedings of the 1992 ACM Conference on Programming Language Design and Implementation, San Francisco, California, pages 235–248, June 1992.
William Leler. Constraint Programming Languages. Addison-Wesley, 1987.
Jiarong Li. Integrating constraints into existing graphical programs. Unpublished manuscript. Swedish Institute of Computer Science, 1992.
Gus Lopez, Bjorn Freeman-Benson, and Alan Borning. Kaleidoscope: A Constraint Imperative Programming Language. University of Washington Computer Science & Engineering Technical Report 93-09-04, September 1993. To appear in Constraint Programming, B. Mayoh, R. TÕugu, J. Penjam (Eds.), NATO Advanced Study Institute Series, Series F: Computer and System Sciences, Springer-Verlag, 1994.
Ole Lehrmann Madsen, Birger MØller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.
Michael Sannella. The SkyBlue Constraint Solver. Technical Report 92-07-02, Department of Computer Science & Engineering, University of Washington, February 1993.
Vijay Saraswat. Concurrent Constraint Programming Languages. PhD Thesis, Carnegie-Mellon University, Computer Science Department, January 1989. A revised version is published as Vijay Saraswat, Concurrent Constraint Programming, MIT Press, 1993.
Vijay Saraswat, Radha Jagadeesan, and Vineet Gupta. Timed Concurrent Constraint Programming. To appear in Constraint Programming, B. Mayoh, R. TÕugu, J. Penjam (Eds.), NATO Advanced Study Institute Series, Series F: Computer and System Sciences, Springer-Verlag, 1994.
Ehud Shapiro. The Family of Concurrent Logic Programming Languages. Computing Surveys, 21(3): 412–510, September 1989.
Author information
Authors and Affiliations
Corresponding author
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lopez, G., Freeman-Benson, B., Borning, A. (1994). Constraints and object identity. In: Tokoro, M., Pareschi, R. (eds) Object-Oriented Programming. ECOOP 1994. Lecture Notes in Computer Science, vol 821. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0052187
Download citation
DOI: https://doi.org/10.1007/BFb0052187
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58202-1
Online ISBN: 978-3-540-48567-4
eBook Packages: Springer Book Archive