Literate Execution
For programmers and educators, this work introduces a new way to create interactive, self-documenting programs, though it is an early-stage exploration without empirical validation.
The paper proposes literate execution, a paradigm where documentation and visualizations are computed alongside a running program and integrated into its execution view, demonstrated through the Fluid language with provenance tracking. The approach aims to make programs more explorable and self-explanatory.
\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.