Literate Execution
Abstract
\emph{Literate programming}, introduced by Knurth, interleaves code and prose so that a program can be read as both executable and explanatory text. We propose \emph{literate execution}, which inverts this relationship: rather than embedding code within a static narrative, we treat documentation -- and other expository elements such as visualisations -- as first-class artefacts that can be computed alongside a running program and then integrated into a view of its execution. We explore this idea through Fluid, a programming language with a provenance-tracking runtime that records fine-grained dependencies between inputs and outputs. These provenance relationships can be surfaced as interactions that allow readers to explore how intermediate values contribute to a result. By integrating visualisation, provenance, and exposition, literate execution aims to make programs more explorable and self-explanatory, and explorable explanations easier to program.
Cite
@article{arxiv.2604.26967,
title = {Literate Execution},
author = {Joe Bond and Jacob Pake and Cristina David and Andrew McNutt and Trevor Sseguya Muwonge and Dominic Orchard and Roly Perera},
journal= {arXiv preprint arXiv:2604.26967},
year = {2026}
}
Comments
A version of this paper was accepted to the 16th Annual Workshop on the Intersection of HCI and PL (PLATEAU 2026). https://2026.plateau-workshop.org/