Constrained Matching is Type Safe

Temporally constrained matching in a persistent and declarative object-oriented system is introduced as a semantic alternative to the existing approaches to the covariance/contravariance problem. While the existing object-oriented type systems are based on subtyping, F-bounded polymorphism and matching, this language system is based entirely on inheritance, which is identified with matching. The type of matching used in this paper relies on the temporal constraint system. We prove that this constrained matching guarantees type safe substitutability even in situations where matching alone would not. This is possible only because the underlying formal system is semantically much richer than the paradigms of type systems. Its temporal constraint system can capture subtleties that go far beyond the level of expressiveness of object-oriented type systems. The temporal nature of the language and its distinctive orthogonal model of persistence make this language system successful in handling a variety of non-trivial applications.

[1]  José Luiz Fiadeiro,et al.  Sometimes "Tomorrow" is "Sometime" - Action Refinement in a Temporal Logic of Objects , 1994, ICTL.

[2]  Suad Alagic,et al.  The ODMG object model: does it make sense? , 1997, OOPSLA '97.

[3]  Martín Abadi,et al.  Temporal Logic Programming , 1989, J. Symb. Comput..

[4]  Joseph A. Goguen,et al.  Types as theories , 1991 .

[5]  P MurtaghThomas,et al.  Safe and decidable type checking in an object-oriented language , 1993 .

[6]  Giuseppe Castagna,et al.  Covariance and contravariance: conflict without a cause , 1995, TOPL.

[7]  Suad Alagic A Statically Typed, Temporal Object-Oriented Database Technology , 1995, IEICE Trans. Inf. Syst..

[8]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[9]  Mara Alagic,et al.  Order-Sorted Model Theory for Temporal Executable Specifications , 1997, Theor. Comput. Sci..

[10]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[11]  Kim B. Bruce,et al.  PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language , 1995, ECOOP.

[12]  Kim B. Bruce,et al.  Safe and decidable type checking in an object-oriented language , 1993, OOPSLA '93.

[13]  Suad Alagic F-Bounded Polymorphism for Database Programming Languages , 1994, East/West Database Workshop.

[14]  Kim B. Bruce Safe type checking in a statically-typed object-oriented programming language , 1993, POPL '93.

[15]  Martín Abadi,et al.  On subtyping and matching , 1995, TOPL.

[16]  Fred Krögr Temporal Logic Of Programs , 1987 .

[17]  José Meseguer,et al.  Solving the Inheritance Anomaly in Concurrent Object-Oriented Programming , 1993, ECOOP.

[18]  Florian Matthes,et al.  Integrating Subtyping, Matching and Type Quantification: A Practical Perspective , 1996, ECOOP.

[19]  Michael Kifer,et al.  Logical foundations of object-oriented and frame-based languages , 1995, JACM.

[20]  Michael Fisher,et al.  A Survey of Concurrent METATEM - the Language and its Applications , 1994, ICTL.

[21]  Rajshekhar Sunderraman,et al.  Declarative Object-Oriented Programming: Inheritance, Subtyping and Prototyping , 1994, ECOOP.

[22]  William R. Cook,et al.  A Proposal for Making Eiffel Type-Safe , 1989, Comput. J..

[23]  John Tang Boyland,et al.  Type-Safe Compilation of Covariant Specialization: A Practical Case , 1996, ECOOP.

[24]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[25]  John C. Mitchell,et al.  F-bounded polymorphism for object-oriented programming , 1989, FPCA.

[26]  Roel Wieringa,et al.  Roles and Dynamic Subclasses: A Modal Logic Approach , 1994, ECOOP.

[27]  François Bancilhon,et al.  The O2 object-oriented database system , 1992, SIGMOD '92.

[28]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .