Anton Ekblad, Computer Science and Engineering

Functional EDSLs for Web Applications

In the real world,
we regularly deal with different types of things, such as potatoes, painkillers, and batteries.
For most things, we know perfectly well how to deal with them safely: we eat potatoes to sate our hunger, but not to get rid of headaches, and we put batteries into flashlights and remote controls but we shouldn't eat them. However, there are many, many, different things in the world, and not all of them are equally easy to use safely. For this reason, we have \emph{regulatory bodies} to classify different things according to their use, and preventing anyone from marketing them as something they are not.

Just like the real world, computer programs also contain a vast number of different things – data – which all belong to some type. Some computer languages act as a fully automated regulatory body, to enforce that no data is used as though it were something completely different – using a picture as a number, for instance.
However, many computer languages don't have this regulatory body.
This leaves programmers free to experiment wildly with different ways to combine data. Just like you probably shouldn't trust your shady cousin – who swears that he's a totally great herbalist – to make dinner from a dozen suspicious mushrooms he happened to find on his way to your place, you may want to think twice before relying on software written in the same way. Just like with the dinner, unless the software in question was perfectly prepared by highly skilled experts, the consequences of consuming it may be dire indeed!

This thesis attempts to make the world of web applications a safer place by regulating how data is used in ways which were not previously possible. Web applications consist of many different parts, which talk to each other in a variety of ways. Traditionally, parts can be seen as independent countries, with their own regulatory bodies, engaging in a kind of international trade with each other. Each part could use different types of data safely on their own, but as soon as they started communicating safety breaks down: the types of data
may not have the same definitions across parts, and some parts may not even have a regulatory body at all.

The technologies pioneered by this thesis attempt to impose a sort of multi-lateral trade agreement on parts, making communication between them consistent and regulated. Just like any two EU countries can trust that foodstuffs exchanged between them is indeed considered edible in both, web application parts can now trust that they have the same idea of how any data they exchange should be used.
The end result? Safer programs for end users and less headache for software developers, all through the magic of regulation!
​Anton Ekblad belongs to the Functional Programming division of Computer Science and Engineering.

Opponent
Dr Simon Peyton Jones, Microsoft Research Lab in Cambridge, Great Britain.

Grading Committee
Dr Simon Marlow, Facebook in London, Great Britain.
Dr Jérôme Vouillon, CNRS, Université Paris Diderot, France.
Docent Thorsten Berger, Computer Science and Engineering, University of Gothenburg.

Read the thesis here.


Category Thesis defence
Location: EB, lecture hall, EDIT trappa C, D och H, EDIT
Starts: 16 March, 2018, 10:00
Ends: 16 March, 2018, 11:00

Published: Mon 05 Mar 2018. Modified: Fri 09 Mar 2018