Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus
Programming Languages
2024-07-17 v1
Abstract
Many Haskell textbooks explain the evaluation of pure functional programs as a process of stepwise rewriting using equations. However, usual implementation techniques perform program transformations that make producing the corresponding tracing evaluations difficult. This paper presents a tracing interpreter for a subset of Haskell based on the pattern matching calculus of Kahl. We start from a big-step semantics in the style of Launchbury and develop a small-step semantics in the style of Sestoft's machines. This machine is used in the implementation of a step-by-step educational interpreter. We also discuss some implementation decisions and present illustrative examples.
Cite
@article{arxiv.2407.11831,
title = {Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus},
author = {Pedro Vasconcelos and Rodrigo Marques},
journal= {arXiv preprint arXiv:2407.11831},
year = {2024}
}