Advertisement

Constraints and object identity

  • Gus Lopez
  • BjØrn Freeman-Benson
  • Alan Borning
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 821)

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.

Keywords

object identity constraints constraint imperative programming Kaleidoscope aliasing 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Borning et al. 92]
    Alan Borning, Bjorn Freeman-Benson, and Molly Wilson. Constraint Hierarchies. Lisp and Symbolic Computation, 5(3): 223–270, September 1992.CrossRefGoogle Scholar
  2. [Dahl & Nygaard 66]
    Ole-Johan Dahl and Kristen Nygaard. SIMULA — An ALGOL-Based Simulation Language. Communications of the ACM, 9(9): 671–678, September 1966.CrossRefGoogle Scholar
  3. [Freeman-Benson et al. 90]
    Bjorn Freeman-Benson, John Maloney, and Alan Borning. An Incremental Constraint Solver. Communications of the ACM, 33(1): 54–63, January 1990.CrossRefGoogle Scholar
  4. [Freeman-Benson 91]
    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. [Freeman-Benson & Borning 92]
    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. [Hogg 91]
    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. [Hogg et al. 92]
    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. [Horn 92]
    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. [Horn 93]
    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. [Hudak 89]
    Paul Hudak. Conception, Evolution, and Application of Functional Programming Languages. Computing Surveys, 21(3): 359–411, September 1989.CrossRefGoogle Scholar
  11. [Jaffar & Lassez 87]
    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. [Kahn 89]
    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. [Khoshafian & Copeland 86]
    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. [Klarlund & Schwartzbach 93]
    Nils Klarlund and Michael Schwartzbach. Graph Types. In Proceedings of the 1993 ACM Principles of Programming Languages Conference, June 1993.Google Scholar
  15. [Krogdahl & Olsen 86]
    S. Krogdahl and K.A. Olsen. Modular and Object-Oriented Programming. DataTid No. 9, Sept. 1986 (in Norwegian).Google Scholar
  16. [Lampson et al. 81]
    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. [Landi & Ryder 92]
    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. [Leler 87]
    William Leler. Constraint Programming Languages. Addison-Wesley, 1987.Google Scholar
  19. [Li 92]
    Jiarong Li. Integrating constraints into existing graphical programs. Unpublished manuscript. Swedish Institute of Computer Science, 1992.Google Scholar
  20. [Lopez et al. 93]
    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. [Madsen et al. 93]
    Ole Lehrmann Madsen, Birger MØller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993.Google Scholar
  22. [Sannella 93]
    Michael Sannella. The SkyBlue Constraint Solver. Technical Report 92-07-02, Department of Computer Science & Engineering, University of Washington, February 1993.Google Scholar
  23. [Saraswat 89]
    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. [Saraswat et al. 94]
    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. [Shapiro 89]
    Ehud Shapiro. The Family of Concurrent Logic Programming Languages. Computing Surveys, 21(3): 412–510, September 1989.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Gus Lopez
    • 1
  • BjØrn Freeman-Benson
    • 2
  • Alan Borning
    • 1
  1. 1.University of Washington, Dept. of Computer Science & EngineeringUniversity of WashingtonSeattleUSA
  2. 2.⇘rhus UniversityårhusDenmark

Personalised recommendations