Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus
<|reference_start|>Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus: 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.<|reference_end|>
@article{vasconcelos2024haskelite:,
    title={Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus},
    author={Pedro Vasconcelos, Rodrigo Marques},
    journal={arXiv preprint arXiv:2407.11831},
    year={2024},
    doi={10.1145/3677999.3678274},
    archivePrefix={arXiv},
    eprint={2407.11831},
    primaryClass={cs.PL}
}