AutoBench: Comparing the Time Performance of Haskell Programs


Details
Speaker: Martin Handley.
Two fundamental goals in programming are correctness (producing the right
results) and efficiency (using as few resources as possible). In recent years,
property-based testing has become a popular method for checking correctness,
whereby conjectures about a program are expressed as executable specifications
known as properties. To give high assurance that properties hold in general,
they are tested on a large number of inputs which are generated automatically.
This approach was popularised by QuickCheck, a lightweight tool that aids
Haskell programmers in formulating and testing properties of their programs.
Can we adopt a similar strategy to check program efficiency?
In this talk, I introduce and demonstrate the AutoBench system: a lightweight,
fully automatic means to compare the time performance of Haskell programs,
designed in the spirit of QuickCheck.
Bio:
I am a third year PhD student in the Functional Programming Lab at the
University of Nottingham, supervised by Professor Graham Hutton. My PhD project
aims to develop abstract ways of reasoning about program efficiency that are
compatible with state-of-the-art techniques used to reason about correctness. I
prefer to program in Haskell, whose lazy evaluation strategy can make it
difficult to reason about operational aspects of programs. It is my hope that by
developing theories for reasoning about program efficiency, I can help to
mitigate this drawback and further encourage the use of lazy semantics.

AutoBench: Comparing the Time Performance of Haskell Programs