finin@PRC.UNISYS.COM (10/17/88)
AI SEMINAR UNISYS PAOLI RESEARCH CENTER Atsushi Ohori University of Pennsylvania Machiavelli : A Polymorphic Language for Object-oriented Databases Machiavelli is a programming language for databases and object-oriented programming with a strong, statically checked type system. It is an extension of the programming language ML with generalized relational algebra, type inheritance and general recursive types. In Machiavelli, various database operations including join and projection are available as polymorphic operations, ML's abstract data types are extended with inheritance declarations, and the type system includes general recursive types. In this talk, I will first introduce Machiavelli and show examples demonstrating its expressive power in the context of both database programming and object-oriented programming. I will then describe the theoretical aspects of the language. For the theoretical aspects of the language, I will show that, by defining syntactic orderings on subsets of terms and types that correspond to database objects, a generalized relational algebra can be introduced in a strongly typed functional programming language. By allowing conditions on substitutions for type variables, Milner's type inference algorithm can be also extended to those new constructs. I will then show that by using the type inference mechanism, ML's abstract data types can be extended to support inheritance. Finally I will describe how the above mechanisms can be extended to recursive types. Joint work with Peter Buneman. 10:30 am - November 2, 1988 BIC Conference Room Unisys Paoli Research Center Route 252 and Central Ave. Paoli PA 19311 -- non-Unisys visitors who are interested in attending should -- -- send email to finin@prc.unisys.com or call 215-648-7446 --