Semantics of Temporal Classes

A model theory of a typed, declarative, temporal object-oriented language system is presented. The declarative nature of the language makes it very different from the dominating procedural, strongly typed object-oriented programming languages. In this declarative system, methods are specified in a high-level, temporal constraint language. Two fundamental properties of these constraints are that they have an execution model and algebraic semantics. The model theory is based on temporal order-sorted algebras with predicates. A variety of orderings are explored in order to represent various types of inheritance, as well as the subtyping discipline. Temporal classes are viewed as temporal theories and some inheritance relationships as morphisms of temporal theories. A model of a temporal class is a temporal order-sorted structure with predicates which satisfies a set of temporal constraints specified in that class. Morphisms of those models are naturally required to preserve type coercions. A distinguished model of a temporal theory is constructed as a colimit of a suitably defined functor. This colimit construction reflects the temporal nature of the paradigm and generalizes the classical initial algebra semantics. In contradistinction to major difficulties in developing a model theory for full-fledged, typed procedural object-oriented languages, this paper shows that such a task becomes possible for a suitably defined declarative object-oriented language. This, in particular, leads to model-theoretic results on the preservation of the behavioral properties in the inheritance hierarchies.

[1]  Amílcar Sernadas,et al.  Constructing Systems as Object Communities , 1993, TAPSOFT.

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

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

[4]  Suad Alagic Temporal Object-Oriented Programming , 2000, Comput. J..

[5]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[6]  Doug DeGroot,et al.  Logic programming - functions, relations and equations , 1986 .

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

[8]  S. Lane Categories for the Working Mathematician , 1971 .

[9]  Hans-Jörg Schek,et al.  Object Orientation with Parallelism and Persistence , 1996 .

[10]  José Meseguer,et al.  EQLOG: Equality, Types, and Generic Modules For Logic Programming , 1986, Logic Programming: Functions, Relations, and Equations.

[11]  Joseph A. Goguen,et al.  Institutions: abstract model theory for specification and programming , 1992, JACM.

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

[13]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

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

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

[16]  Patrick Brézillon,et al.  Lecture Notes in Artificial Intelligence , 1999 .

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

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

[19]  A. W. Roscoe,et al.  Topology and category theory in computer science , 1991 .

[20]  Bart Jacobs,et al.  Objects and Classes, Co-Algebraically , 1995, Object Orientation with Parallelism and Persistence.

[21]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..

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

[23]  Radha Jagadeesan,et al.  Timed Default Concurrent Constraint Programming , 1996, J. Symb. Comput..

[24]  Gunter Saake,et al.  TROLL: a language for object-oriented specification of information systems , 1996, TOIS.

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

[26]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[27]  Suad Alagic A Temporal Constraint System for Object-Oriented Databases , 1997, CDB.

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

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

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

[31]  Suad Alagic,et al.  Orthogonal to the Java Imperative , 1998, ECOOP.

[32]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[33]  Suad Alagic Constrained Matching is Type Safe , 1997, DBPL.

[34]  José Meseguer,et al.  Models and Equality for Logical Programming , 1987, TAPSOFT, Vol.1.

[35]  Bart Jacobs Coalgebraic Specifications and Models of Determinatistic Hybrid Systems , 1996, AMAST.

[36]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[37]  Bart Jacobs,et al.  Inheritance and Cofree Constructions , 1996, ECOOP.

[38]  José Meseguer,et al.  A logical semantics for object-oriented databases , 1993, SIGMOD '93.

[39]  Friederike Nickl,et al.  Pushouts of Order-Sorted Algebraic Specifications , 1996, AMAST.

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

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

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

[43]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[44]  B. Plotkin,et al.  Universal Algebra, Algebraic Logic, and Databases , 1994 .

[45]  Rajshekhar Sunderraman,et al.  Expressivity of Typed Logic Paradigms for Object-Oriented Databases , 1994, BNCOD.