[comp.ai.digest] Machiavelli : A Polymorphic Lang. for oo db - Atsushi Ohori

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  --