English

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.

Keywords

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}
}
R2 v1 2026-06-28T17:43:14.042Z