Making Curry with Rice: An Optimizing Curry Compiler [thesis]

Steven Libby
In this dissertation we present the RICE optimizing compiler for the functional logic language Curry. This is the first general optimizing compiler for a functional logic language. Our work is based on the idea of compiling through program transformations, which we have adapted from the functional language compiler community. We also present the GAS system for generating new program transformations, which uses the power of functional logic programming to provide a flexible framework for
more » ... ng transformations. This allows us to describe and implement a wide range of optimizations including inlining, shortcut deforestation, unboxing, and case shortcutting, a new optimization we developed specifically for functional logic language. We show the correctness of these optimizations and demonstrate their effectiveness. In particular, we show that RICE outperforms previous compilers by 2 or 3 orders of magnitude on standard benchmarks.
doi:10.15760/etd.7964 fatcat:orgohldntbcgfipvfoiusqwv34