Options
Extending scala with database query capability
Publikationstyp
Journal Article
Date Issued
2010
Sprache
English
Institut
TORE-URI
Journal
Volume
9
Issue
4
Start Page
45
End Page
68
Citation
Journal of Object Technology 4 (9): 45-68 (2010)
Publisher DOI
Scopus ID
Publisher
ETH Zürich, Department of Computer Science
The integration of database and programming languages is difficult due to the different data models and type systems prevalent in each field. We present a solution where the developer may express queries encompassing program and database data. The notation used for queries is based on comprehensions, a declarative style that does not impose any specific execution strategy. In our approach, the type safety of languageintegrated queries is analyzed at compile-time, followed by a translation that optimizes for database evaluation. We show the translation total and semantics preserving, and introduce a language-independent classification. According to this classification, our approach compares favorably with Microsoft's LINQ, today's best-known representative. We provide an implementation in terms of Scala compiler plugins, accepting two notations for queries: LINQ and the native Scala syntax for comprehensions. The prototype relies on Ferry, a query language that already supports comprehensions yet targets SQL:1999. The reported techniques pave the way for further progress in bridging the programming and the database worlds. ©JOT 2010.
Subjects
Compiler plugins
Language-integrated query
Scala programming language
Typedirected program transformation
DDC Class
004: Informatik