Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Vasconcelos, Pedro, Marques, Rodrigo
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911957208006656
author Vasconcelos, Pedro
Marques, Rodrigo
author_facet Vasconcelos, Pedro
Marques, Rodrigo
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2407_11831
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus
Vasconcelos, Pedro
Marques, Rodrigo
Programming Languages
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.
title Haskelite: A Tracing Interpreter Based on a Pattern-Matching Calculus
topic Programming Languages
url https://arxiv.org/abs/2407.11831