Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and persistence in database programming languages
ACM Computing Surveys (CSUR)
Type inference in a database programming language
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Database programming in Machiavelli—a polymorphic language with static type inference
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Type checking records and variants in a natural extension of ML
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The O2 database programming language
VLDB '89 Proceedings of the 15th international conference on Very large data bases
Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Database programming languages: a functional approach
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Principles of programming with complex objects and collection types
ICDT '92 Selected papers of the fourth international conference on Database theory
A polymorphic record calculus and its compilation
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
SQLJ Part 0, now known as SQL/OLB (Object-Language Bindings)
ACM SIGMOD Record
Domain specific embedded compilers
Proceedings of the 2nd conference on Domain-specific languages
A relational model of data for large shared data banks
Communications of the ACM
The Definition of Standard ML
On type systems for object-oriented database programming languages
ACM Computing Surveys (CSUR)
Making smalltalk a database system
SIGMOD '84 Proceedings of the 1984 ACM SIGMOD international conference on Management of data
Fibonacci: a programming language for object databases
The VLDB Journal — The International Journal on Very Large Data Bases - Persistent object systems
Kleisli, a functional query system
Journal of Functional Programming
Compiling ML polymorphism with explicit layout bitmap
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
LINQ: reconciling object, relations and XML in the .NET framework
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
A crash course on database queries
Proceedings of the twenty-sixth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
MapReduce: simplified data processing on large clusters
Communications of the ACM - 50th anniversary issue: 1958 - 2008
FERRY: database-supported program execution
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
The Script-Writer's Dream: How to Write Great SQL in Your Own Language, and Be Sure It Will Succeed
DBPL '09 Proceedings of the 12th International Symposium on Database Programming Languages
Simple and safe SQL queries with C++ templates
Science of Computer Programming
Links: web programming without tiers
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Ur: statically-typed metaprogramming with type-level record computation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
A comparison of join algorithms for log processing in MaPreduce
Proceedings of the 2010 ACM SIGMOD International Conference on Management of data
Haskell boards the ferry: database-supported program execution for Haskell
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Row-based effect types for database integration
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
A data flow language for hybrid query and programming languages
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Static and dynamic semantics of NoSQL languages
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical theory of language-integrated query
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Integrating a database query language into a programming language is becoming increasingly important in recently emerging high-level cloud computing and other applications, where efficient and sophisticated data manipulation is required during computation. This paper reports on seamless integration of SQL into SML# - an extension of Standard ML. In the integrated language, the type system always infers a principal type for any type consistent SQL expression. This makes SQL queries first-class citizens, which can be freely combined with any other language constructs definable in Standard ML. For a program involving SQL queries, the compiler separates SQL queries and delegates their evaluation to a database server, e.g. PostgreSQL or MySQL in the currently implemented version. The type system of our language is largely based on Machiavelli, which demonstrates that ML with record polymorphism can represent type structure of SQL. In order to develop a practical language, however, a number of technical challenges have to be overcome, including static enforcement of server connection consistency, proper treatment of overloaded SQL primitives, query compilation, and runtime connection management. This paper describes the necessary extensions to the type system and compilation, and reports on the details of its implementation.