Edinburgh Research Explorer

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Related Edinburgh Organisations

Open Access permissions



Original languageEnglish
Title of host publicationSIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Number of pages12
ISBN (Print)0-89791-317-5
Publication statusPublished - 1 Jun 1989


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 ƒ of a records is polymorphic in the sense that it can be applied to any record which contains a field ƒ 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.

Download statistics

No data available

ID: 10624849