Strange Loop

Datafun: a functional query language

Datafun is a new language exploring the question: What's the simplest way to bring our general-purpose languages closer to our database query languages?

At its core, a lot of programming is data munging. Yet our general-purpose programming languages don't make this easy for us. We have to decide in advance how to arrange our data, whether we want it in memory or on disk, what operations we want to be efficient, and so on. Databases are powerful tools for solving these issues, but they involve separating our data from our general programming tools.

Yet the walls separating database theory from programming language theory are quite thin. With the right design choices, we can dissolve them entirely. Purity and totality, for example, let us apply many standard database query optimizations to a functional language. Techniques like materialized view maintenance, Datalog's seminaive evaluation, and incremental computation are just different sides of the same coin.

This talk will use Datafun as a jumping off point to explore these and other ideas at the intersection of databases and programming languages.

Michael Arntzenius

Michael Arntzenius

University of Birmingham

Michael Arntzenius researches the theory, design, and implementation of programming languages. He's interested in types, monotonicity, logic, concurrency and distributed systems; but most of all in simplicity. He's convinced there is still low-hanging fruit left to be plucked in the orchards of language design, if you look in the right places.