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

Atsushi Ohori, Peter Buneman, Val Breazu-Tannen

Research output: Contribution to journalArticlepeer-review

69 Citations (Scopus)


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.

Original languageEnglish
Pages (from-to)46-57
Number of pages12
JournalACM SIGMOD Record
Issue number2
Publication statusPublished - 1989 Jun 1
Externally publishedYes

ASJC Scopus subject areas

  • Software
  • Information Systems


Dive into the research topics of 'Database Programming in Machiavelli—a Polymorphic Language with Static Type Inference'. Together they form a unique fingerprint.

Cite this