Stefan Fehrenbach

For better or for worse this is me ;-)

Hi, I’m a PhD student at the University of Edinburgh in the Laboratory for Foundations of Computer Science (LFCS).

I work on programming language support for provenance with James Cheney.

Language-integrated Provenance

Provenance is meta-data about the origin, location, and history of data. Provenance of data can be useful for debugging, it gives additional information about data that can help to pin down errors and their causes. More importantly, in a world increasingly driven by data, it gives us the tools necessary to decide whether some data is trustworthy. In general, data could come from anywhere, but provenance metadata tells us its source. Only then can make an informed decision to trust the source, or not.

Language-integrated provenance is about developing programming language based tools for access to and computation of provenance. Language-integrated query gives us easy access to, and type safe as well as injection-safe handling of, database data. We work on easy access and safe handling of provenance metadata. This will make it possible and easy to trace data through a program from its source and propagate provenance. As a result we, and users of our data, gain more confidence in its trustworthiness.


In 2016 I interned at IBM Research. I worked on an Apache Spark backend for the formally verified query compiler Q*cert with Jérôme Siméon.

In 2015 I interned at Microsoft Research to work on Trill with Mike Barnett. Trill is a high-throughput streaming query engine which derives much of its performance from runtime code generation. Over the summer I rewrote the code generation framework from text templates to a custom AST transformation system based on the Roslyn C# compiler.

I got Bachelor and Master of Science degrees from the University of Marburg in Germany. My bachelor’s thesis revolved around evolving legacy code bases to use domain-specific languages. My master’s thesis was about just-in-time compiling parsers using Oracle’s GraalVM and Truffle framework to speed up parsing of syntactically extensible languages.


I am the student representative for LFCS PhD students: come by and talk to me about concerns and suggestions, my office is 5.34, or email me.

See the email addresses at the top of this page. I generally use the university address for university things and the other one for private communication and everything else. Use your own judgment.

Github | Twitter | Google Scholar