Database programming in Machiavelli---a polymorphic language with static type inference

Atsushi Ohori, Peter Buneman, Val Breazu-Tannen
<span title="">1989</span> <i title="ACM Press"> <a target="_blank" rel="noopener" href="" style="color: black;">Proceedings of the 1989 ACM SIGMOD international conference on Management of data - SIGMOD &#39;89</a> </i> &nbsp;
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
more &raquo; ... 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.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="">doi:10.1145/67544.66931</a> <a target="_blank" rel="external noopener" href="">dblp:conf/sigmod/OhoriBT89</a> <a target="_blank" rel="external noopener" href="">fatcat:lnv36khi4vbipiuexhdymoline</a> </span>
<a target="_blank" rel="noopener" href="" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href=""> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> </button> </a>