Database programming in Machiavelli—a polymorphic language with static type inference
- 1 June 1989
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGMOD Record
- Vol. 18 (2) , 46-57
- https://doi.org/10.1145/66926.66931
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 ƒ 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.Keywords
This publication has 13 references indexed in Scilit:
- A theory of type polymorphism in programmingPublished by Elsevier ,2003
- IFO: a formal semantic database modelACM Transactions on Database Systems, 1987
- Semantic database modeling: survey, applications, and research issuesACM Computing Surveys, 1987
- Types and persistence in database programming languagesACM Computing Surveys, 1987
- On understanding types, data abstraction, and polymorphismACM Computing Surveys, 1985
- GALILEO: a strongly-typed, interactive conceptual languageACM Transactions on Database Systems, 1985
- Making smalltalk a database systemPublished by Association for Computing Machinery (ACM) ,1984
- An Approach to Persistent ProgrammingThe Computer Journal, 1983
- Fundamental properties of infinite treesTheoretical Computer Science, 1983
- Some high level language constructs for data of type relationACM Transactions on Database Systems, 1977