Hi there! My name is Daniel Hillerström, and I am a passionate computer science student. I saw the first rays of sunlight in the early nineties. I grew up in lovely nature of Virklund in Denmark. Currently, I live in Edinburgh, Scotland, where I study towards a PhD degree in computer science at the University of Edinburgh.
My primary interests in computer science are semantics and type systems for programming languages, and compilers. In particular, I am interested in design and implementation of handlers for algebraic effects. Moreover, I have a sweet spot for mathematics, especially, mathematical analysis. I am very keen on fixed point theorems and computations (definition: A point \(x\) is called a fixed point of a function \(f\) if \( f(x) = x \)).
I am working on a variety of different projects and ideas (whose common theme seems to be effect handlers):
I am using algebraic effects and handlers to abstract concurrency, parallelism, and distribution. The main idea is simple: use algebraic effects to describe an abstract concurrency model. The main primitives such as fork, yield, and join are in fact abstract algebraic operations. Concurrent computations are composed using these primitives. In order to run a concurrent computation one must first pick an instantiation of the concurrency model by using one or more effect handlers. Consequently, concurrent computations are agnostic to the concrete implementation of the concurrency model in the runtime. My hypothesis is that I can give different interpretations of the concurrency model, allowing it to be instantiation with a parallel or distributed runtime.
I am working towards developing an unifying framework for studying implementations of effect handlers. In previous work with coauthors, I have developed a CEK machine for handlers which accommodates both deep and shallow handlers. Furthermore, we have developed a higher-order CPS translation for effect handlers. I want to relate these two in the style of Olivier Danvy. I also want to generalise both to the setting of multi-handlers. In order to map into the known space of efficient implementable handlers I am planning to design a linear type system for both the CEK machine and the CPS translation.
I am hacking on my effect handlers extension to the Links programming language – a single-source language for multi-tier web programming. Coincidentally, I am also contributing to the Multicore OCaml compiler which is an experimental extension to the OCaml programming language that brings, among other things, effect handlers to OCaml.