Skip to main content

Constraints and object identity

  • Conference paper
  • First Online:
Object-Oriented Programming (ECOOP 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 821))

Included in the following conference series:

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.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alan Borning, Bjorn Freeman-Benson, and Molly Wilson. Constraint Hierarchies. Lisp and Symbolic Computation, 5(3): 223–270, September 1992.

    Article  Google Scholar 

  2. Ole-Johan Dahl and Kristen Nygaard. SIMULA — An ALGOL-Based Simulation Language. Communications of the ACM, 9(9): 671–678, September 1966.

    Article  Google Scholar 

  3. Bjorn Freeman-Benson, John Maloney, and Alan Borning. An Incremental Constraint Solver. Communications of the ACM, 33(1): 54–63, January 1990.

    Article  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  10. Paul Hudak. Conception, Evolution, and Application of Functional Programming Languages. Computing Surveys, 21(3): 359–411, September 1989.

    Article  Google Scholar 

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

    Google Scholar 

  12. Kenneth Kahn. Objects — A Fresh Look. In Proceedings of the 1989 European Conference on Object-Oriented Programming, pages 207–223, July 1989.

    Google Scholar 

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

    Google Scholar 

  14. Nils Klarlund and Michael Schwartzbach. Graph Types. In Proceedings of the 1993 ACM Principles of Programming Languages Conference, June 1993.

    Google Scholar 

  15. S. Krogdahl and K.A. Olsen. Modular and Object-Oriented Programming. DataTid No. 9, Sept. 1986 (in Norwegian).

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  18. William Leler. Constraint Programming Languages. Addison-Wesley, 1987.

    Google Scholar 

  19. Jiarong Li. Integrating constraints into existing graphical programs. Unpublished manuscript. Swedish Institute of Computer Science, 1992.

    Google Scholar 

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

    Google Scholar 

  21. Ole Lehrmann Madsen, Birger MØller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.

    Google Scholar 

  22. Michael Sannella. The SkyBlue Constraint Solver. Technical Report 92-07-02, Department of Computer Science & Engineering, University of Washington, February 1993.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  25. Ehud Shapiro. The Family of Concurrent Logic Programming Languages. Computing Surveys, 21(3): 412–510, September 1989.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to BjØrn Freeman-Benson .

Editor information

Mario Tokoro Remo Pareschi

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

Publish with us

Policies and ethics