TY - GEN
T1 - Database programming in machiavelli - A polymorphic language with static type inference
AU - Ohori, Atsushi
AU - Buneman, Peter
AU - Breazu-Tannen, Val
N1 - Funding Information:
in part by grants NSF IRI86- AR0 DAA62984-k-0061 in part by OK1 Electric
Funding Information:
*This research was supported 10617, ONR NOOO-14-88-K-0634, The first author was also supported Industry Co., Japan.
Publisher Copyright:
© 1989 ACM.
PY - 1989/6/1
Y1 - 1989/6/1
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=84976661129&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84976661129&partnerID=8YFLogxK
U2 - 10.1145/67544.66931
DO - 10.1145/67544.66931
M3 - Conference contribution
AN - SCOPUS:84976661129
T3 - Proceedings of the ACM SIGMOD International Conference on Management of Data
SP - 46
EP - 57
BT - Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, SIGMOD 1989
PB - Association for Computing Machinery
T2 - 1989 ACM SIGMOD International Conference on Management of Data, SIGMOD 1989
Y2 - 31 May 1989 through 2 June 1989
ER -