F-Bounded Polymorphism for Database Programming Languages

The relevance of F-bounded polymorphism for database programming languages (object-oriented in particular) is investigated. Two different kinds of object types are proposed as a solution for the controversy between inheritance and subtyping. It is with this duality that complex, recursive object types so typical for database application environments are constructed and the relationship with F-algebras and F-coalgebras hinted in the literature established. Surprisingly enough, the covariant (and thus unsafe) ordering for object types is shown to play an important role in interpreting formally the contravariant (type-safe) subtyping for object types. These results are established in a formal framework based on a variety of kinds (of types) of a polymorphic database type system which serves as a basis for a typed database technology. In addition to the formal theory, application-oriented and database system-oriented illustrations of the usage of F-bounded polymorphism are also presented.

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

[2]  Suad Alagic,et al.  Toward Multiparadigm Database Interfaces , 1990, East/West Database Workshop.

[3]  Suad Alagic,et al.  Object-Oriented Database Programming , 1988, Texts and Monographs in Computer Science.

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

[5]  Ralf Hartmut Güting,et al.  Second-order signature , 1993, SIGMOD Conference.

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

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

[8]  Peter Buneman,et al.  Database programming in Machiavelli—a polymorphic language with static type inference , 1989, SIGMOD '89.

[9]  Christophe Lécluse,et al.  The O2 Database Programming Language , 1989, Building an Object-Oriented Database System, The Story of O2.

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

[11]  Luca Cardelli,et al.  The Modula–3 type system , 1989, POPL '89.

[12]  John C. Mitchell,et al.  PER models of subtyping, recursive types and higher-order polymorphism , 1992, POPL '92.

[13]  Luca Cardelli,et al.  Types for Data-Oriented Languages , 1988, EDBT.

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

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

[16]  Michael A. Arbib,et al.  Algebraic Approaches to Program Semantics , 1986, Texts and Monographs in Computer Science.

[17]  P. Freyd Algebraically complete categories , 1991 .

[18]  David W. Stemple,et al.  Exceeding the Limits of Polymorphism in Database Programming Languages , 1990, EDBT.

[19]  Renzo Orsini,et al.  GALILEO: a strongly-typed, interactive conceptual language , 1985, TODS.