Visualizing the Evaluation of Functional Programs for Debugging
John Whitington, Tom Ridge

TL;DR
This paper introduces a prototype visualization tool for functional programs, aiming to improve debugging by illustrating program evaluation in a clear, mathematical expression-like manner, with initial work on handling complex language features.
Contribution
The paper presents a novel visualization approach for functional program evaluation, specifically for OCaml, and discusses challenges and initial solutions for debugging complex features.
Findings
Visualization aids understanding of program evaluation
Initial prototype demonstrates potential for debugging
Addressed challenges of limited space and essential element identification
Abstract
In this position paper, we present a prototype of a visualizer for functional programs. Such programs, whose evaluation model is the reduction of an expression to a value through repeated application of rewriting rules, and which tend to make little or no use of mutable state, are amenable to visualization in the same fashion as simple mathematical expressions, with which every schoolchild is familiar. We show how such visualizations may be produced for the strict functional language OCaml, by direct interpretation of the abstract syntax tree and appropriate pretty-printing. We describe (and begin to address) the challenges of presenting such program traces in limited space and of identifying their essential elements, so that our methods will one day be practical for more than toy programs. We consider the problems posed by the parts of modern functional programming which are not purely…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsBusiness Process Modeling and Analysis · Software Engineering Techniques and Practices · Advanced Software Engineering Methodologies
