Eberhard Karls Universität Tübingen

Mathematisch-Naturwissenschaftliche FakultätProgramming Languages and Software Technology

ILC: Creating an API for producing changes

In incremental lambda calculus, to update the output we need a description (represented as data) of how the input of a program changes. Comparing the old and the new input is overly expensive; instead, it would be convenient to create a description of the changes while they happen. The goal of this thesis is to design (and implement) a solution to this problem, focusing on the case of collections.

Some possible approaches:

  • design a library allowing to describe the changes, and investigate whether it can have other potential applications (also in relations to transducers from Clojure);
  • design a library that allows to change the input and create a change by “logging” performed actions;
  • design a program transformation from the code that changes the input to the code that produces the change.


Paolo Giarrusso