A study of semantics, types and languages for databases and object-oriented programming

The purpose of this thesis is to investigate a type system for databases and object-oriented programming and to design a statically typed programming language for these applications. Such a language should ideally have a static type system that supports: (1) polymorphism and static type inference, (2) rich data structures and operations to represent various data models for databases including the relational model and more recent complex object models, (3) central features of object-oriented programming including user definable class hierarchies, multiple inheritance, and data abstraction, (4) the notion of extents and object-identities for object-oriented databases. Without a proper formalism, it is not obvious that the construction of such a type system is possible. This thesis attempts to construct one such formalism and proposes a programming language that uniformly integrate all of the above features. The specific contributions of this thesis include: (1) A simple semantics for ML polymorphism and axiomatization of the equational theory of ML. (2) A uniform generalization of the relational model to arbitrary complex database objects that are constructed by labeled records, labeled variants, finite sets and recursive definition. (3) A framework for semantics of types for complex database objects. (4) The notion of conditional typing schemes that extends Milner's typing scheme for ML to a wide range of complex structures and operations. (5) A formulation of the notion of classes and inheritance in an ML style static type system. (6) The notion of views that enable us to represent object-oriented databases in an ML style static type system. (7) A proposal of a polymorphic programming language, Machiavelli, for databases and object-oriented programming with static type inference. In addition to the above technical contributions, a prototype implementation of Machiavelli that embodies most of the features presented in this thesis has been done in Standard ML of New Jersey.

[1]  Nancy Jean Mccracken,et al.  An investigation of a programming language with a polymorphic type structure. , 1979 .

[2]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[3]  Roger King,et al.  Semantic database modeling: survey, applications, and research issues , 1987, CSUR.

[4]  Niklaus Wirth,et al.  Pascal User Manual and Report , 1991, Springer New York.

[5]  Ronald J. Brachman,et al.  An overview of the KL-ONE Knowledge Representation System , 1985 .

[6]  Mario Coppo,et al.  Completeness of Type Assignment in Continuous Lambda Models , 1984, Theor. Comput. Sci..

[7]  William C. Rounds Set values for unification-based grammar formalisms and logic programming , 1988 .

[8]  Abraham Silberschatz,et al.  Extended algebra and calculus for nested relational databases , 1988, TODS.

[9]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[10]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

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

[12]  Peter Buneman,et al.  Types and persistence in database programming languages , 1987, CSUR.

[13]  Atsushi Ohori,et al.  Semantics of Types for Database Objects , 1988, Theor. Comput. Sci..

[14]  Dennis McLeod,et al.  Database description with SDM: a semantic database model , 1981, TODS.

[15]  Y. Edmund Lien,et al.  On the Equivalence of Database Models , 1982, JACM.

[16]  Gultekin Özsoyoglu,et al.  Extending relational algebra and relational calculus with set-valued attributes and aggregate functions , 1987, TODS.

[17]  Gordon D. Plotkin,et al.  An ideal model for recursive polymorphic types , 1984, Inf. Control..

[18]  Val Tannen,et al.  Lambda Calculus with Constrained Types (Extended Abstract) , 1985, Logic of Programs.

[19]  Z. Meral Özsoyoglu,et al.  A new normal form for nested relations , 1987, TODS.

[20]  Irving L. Traiger,et al.  System R: relational approach to database management , 1976, TODS.

[21]  John C. Mitchell,et al.  ML with extended pattern matching and subtypes , 1988, LISP and Functional Programming.

[22]  Christophe Lécluse,et al.  O2, an object-oriented data model , 1988, SIGMOD '88.

[23]  Mario Coppo,et al.  A Completeness Theorem for Recursively Defined Types , 1985, ICALP.

[24]  Ronald J. Brachman,et al.  An Overview of the KL-ONE Knowledge Representation System , 1985, Cogn. Sci..

[25]  Ryan Stansifer,et al.  Type inference with subtypes , 1988, POPL '88.

[26]  Peter Buneman,et al.  Type inference in a database programming language , 1988, LISP and Functional Programming.

[27]  Setrag Khoshafian,et al.  Object identity , 1986, OOPLSA '86.

[28]  N. Curteanu Book Reviews: Lecture on Contemporary Syntactic Theories: An Introduction to Unification-Based Approaches to Grammar , 1987, CL.

[29]  Ketan Mulmuley A Semantic Characterization of Full Abstraction for Typed Lambda Calculi , 1984, FOCS.

[30]  Tomasz Imielinski,et al.  Incomplete Information in Relational Databases , 1984, JACM.

[31]  Robin Milner,et al.  The definition of standard ML, Version 3 , 1988 .

[32]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[33]  Mitchell Wand,et al.  A types-as-sets semantics for milner-style polymorphism , 1984, POPL.

[34]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[35]  David Maier,et al.  The Theory of Relational Databases , 1983 .

[36]  Serge Abiteboul,et al.  Restructuring Hierarchical Database Objects , 1988, Theor. Comput. Sci..

[37]  Stanley B. Zdonik,et al.  Issues in the design of object-oriented database programming languages , 1987, OOPSLA '87.

[38]  Setrag Khoshafian,et al.  A calculus for complex objects , 1985, PODS '86.

[39]  Witold Lipski,et al.  On semantic issues connected with incomplete information databases , 1979, ACM Trans. Database Syst..

[40]  Lennart Augustsson,et al.  A compiler for lazy ML , 1984, LFP '84.

[41]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[42]  Richard Hull,et al.  Relative information capacity of simple relational database schemata , 1984, SIAM J. Comput..

[43]  Bruno Courcelle,et al.  Fundamental Properties of Infinite Trees , 1983, Theor. Comput. Sci..

[44]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[45]  John C. Mitchell,et al.  The Semantics of Second-Order Lambda Calculus , 1990, Inf. Comput..

[46]  G. Plotkin Tω as a Universal Domain , 1978 .

[47]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[48]  Serge Abiteboul,et al.  Non first normal form relations to represent hierarchically organized data , 1984, PODS.

[49]  Atsushi Ohori,et al.  A simple semantics for ML polymorphism , 1989, FPCA.

[50]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[51]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[52]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[53]  Karen E. Smith,et al.  Intermedia: A case study of the differences between relational and object-oriented database systems , 1987, OOPSLA '87.

[54]  K. Hofmann,et al.  A Compendium of Continuous Lattices , 1980 .

[55]  Peter Buneman,et al.  Static type inference for parametric classes , 1989, OOPSLA '89.

[56]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[57]  E. F. Codd,et al.  A Relational Model for Large Shared Data Banks , 1970 .

[58]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[59]  Peter Buneman,et al.  Using Powerdomains to Generalize Relational Databases , 1991, Theor. Comput. Sci..

[60]  Dana S. Scott,et al.  Some Domain Theory and Denotational Semantics in Coq , 2009, TPHOLs.

[61]  Alfred V. Aho,et al.  Universality of data retrieval languages , 1979, POPL.

[62]  Patrick Valduriez,et al.  FAD, a Powerful and Simple Database Language , 1987, VLDB.

[63]  Donald D. Chamberlin,et al.  Implementation of a structured English query language , 1975, CACM.

[64]  Martín Abadi,et al.  Dynamic typing in a statically-typed language , 1989, POPL '89.

[65]  Joachim W. Schmidt,et al.  Some high-level language constructs for data of type relation , 1977, SIGMOD '77.

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

[67]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[68]  B. J. Mailloux,et al.  Report of Algorithmic Language ALGOL 68 , 1969 .

[69]  Serge Abiteboul,et al.  IFO: a formal semantic database model , 1987, TODS.

[70]  Richard Hull,et al.  The format model: a theory of database organization , 1982, JACM.

[71]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[72]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[73]  David A. Schmidt,et al.  Denotationaisemantics: a methodology for language development , 1986 .

[74]  François Banciihon Object-oriented database systems , 1988, PODS 1988.

[75]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[76]  Saul Corn,et al.  Explicit Definitions and Linguistic Dominoes , 1967 .

[77]  Joachim Biskup,et al.  A Formal Approach to Null Values in Database Relations , 1979, Advances in Data Base Theory.

[78]  E. Mark Gold,et al.  Complexity of Automaton Identification from Given Data , 1978, Inf. Control..

[79]  J. Girard Une Extension De ĽInterpretation De Gödel a ĽAnalyse, Et Son Application a ĽElimination Des Coupures Dans ĽAnalyse Et La Theorie Des Types , 1971 .

[80]  John C. Mitchell,et al.  The essence of ML , 1988, POPL '88.