Constraints and Object Identity

Authors: Gus Lopez, Bjorn Freeman-Benson, and Alan Borning

Published in Proceedings of the 1994 European Conference on Object-Oriented Programming, Bologna, Italy, July 1994, pages 260-279.


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.

full paper (pdf)

Constraints home page