Database Programming in Machiavelli - a Polymorphic Language with Static Type Inference

Abstract

Machiavelli is a polymorphically typed programming language in the spirit of ML, but supports an extended method of type inferencing that makes its polymorphism more general and appropriate for database applications. In particular, a function that selects a field f of a records is polymorphic in the sense that it can be applied to any record which contains a field f with the appropriate type. When combined with a set data type and database operations including join and projection, this provides a natural medium for relational database programming. Moreover, by implementing database objects as reference types and generating the appropriate views --- sets of structures with "identity" --- we can achieve a degree of static type checking for object-oriented databases. 1 Introduction The term "impedance mismatch" has been coined [Mai89] to describe the phenomenon that the data types available in a programming language do not usually match the structures provided in a database system. This ..

    Similar works

    Full text

    thumbnail-image

    Available Versions