Supercompilation for Ouroboro
Supercompilation is a compile-time optimization technique which uses partial-evaluation in order to generate an optimzed version of the program. Supercompilation is known to generate significant speedups and to subsume various other optimization techniques. The downsides of supercompilation are potentially huge increases in both compile-time and binary size.
The thesis consists in designing and implementing a super-compiling compiler for a variant of the Ouroboro language, for which it is very simple to specify an abstract machine interpretation.