Master's Thesis defence by Jonas Stig Kämpf Hansen

Title: "Translation of a Reversible Functional Programming Language"

Abstract: We present techniques for compilation of the reversible functional programming language Rfun into a slightly extended version of the reversible assembly language Bob. The presented techniques have been implemented in a prototype compiler written in Haskell. Our implementation includes new contributions related to non-trivial techniques for implementing reversible heap management for arbitrary constructor values, reversible efficient pattern matching of complex patterns in case-expressions and an implementation of Rfun's duplication/equality operator. The presented techniques are garbage-free, i.e. translated programs do not produce residual extraneous data that is not necessary for correct program execution. We also discuss how to extend Rfun with simple functional values (specifically function pointers), and have proposed methods for implementing such functional values in the target language.

Advisors: Holger Bock Axelsen (internal evaluator), Robert Glück

External evaluator: Mads Rosendahl (RUC)