Martin A.T. Handley

I'm a second year PhD student in the Functional Programming Lab at the University of Nottingham. I'm currently researching about new theories for reasoning about program efficiency in a lazy setting, and also developing tools to aid this process. Helping me are my supervisers Professor Graham Hutton and Professor Thorsten Altenkirch.

Please email me if you can help too!

TimeCheck: comparing the time performance of Haskell programs

Martin A.T. Handley and Graham Hutton
In preparation, 2018
Two of the fundamental goals in programming are correctness (producing the right results) and efficiency (using as few resources as possible). QuickCheck provides a lightweight means to check the correctness of Haskell programs by random testing. But what about efficiency? In this article, we show how QuickCheck can be combined with the Criterion system for benchmarking to give a lightweight means to compare the time performance of Haskell programs. We present the design and implementation of our combined system, and show that many QuickCheck correctness properties turn out to be time improvements.

Improving Haskell

Martin A.T. Handley and Graham Hutton
In preparation, 2018
Lazy evaluation is a key feature of Haskell, but can make it difficult to reason about the efficiency of programs. Improvement theory addresses this problem by providing a foundation for proofs of program improvement in a call-by-need setting, and has recently been the subject of renewed interest. However, proofs of improvement are intricate and require an inequational style of reasoning that is unfamiliar to most Haskell programmers. In this article, we present the design and implementation of an inequational reasoning assistant that provides mechanical support for improvement proofs, and demonstrate its utility by verifying a range of improvement results from the literature.

University of Nottingham Improvement Engine (Unie)

Martin A.T. Handley

A Haskell implemented inequational reasoning assistant that provides mechanical support for proofs of time improvement in a lazy setting. Below is a short video of the system in action.

FPL Representative in the PGR-LCF (2017-18)

The LCF aims to ensure that the views of the postgraduate research students are given proper weight and that concerns they may have about supervision, progress, specific training, development opportunities, career, etc. are being addressed.

Teaching Assistant

  • Lab Assistant, Compilers (2017)
  • Lab Assistant, Programming in Python (2017)
  • Lab Assistant, Systems and Architecture (2016-17)
  • Lab Assistant, Advanced Functional Programming (2016)
  • Lab Assistant, C++ Programming (2016)
  • Lab Assistant, Computer Fundamentals (2016)
  • Lab Assistant, Computer Security (2016)
  • Lab Assistant, Programming Paradigms (2016)
Last updated on 18 January 2018