Whitington, J., & Ridge, T. (2024). Visualizing the Evaluation of Functional Programs for Debugging. Conference/workshop/symposium title on which this volume is based on. Editors: Billy Editor and Bill Editors; pp. 1–8. OpenAccess Series in Informatics. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany.
This position paper presents a prototype for a visualizer of functional programs, aiming to aid debugging by presenting program evaluation in a human-readable format, similar to manual evaluation of mathematical expressions.
The authors developed a prototype visualizer for the OCaml language, leveraging the compiler's abstract syntax tree and pretty-printing capabilities to generate step-by-step visualizations of program execution. They focused on elision techniques to manage the complexity of large programs and considered the challenges posed by non-functional aspects like exceptions and mutability.
The prototype demonstrates the feasibility of generating readable visualizations of functional program evaluation, highlighting the importance of elision for managing scale. The authors argue that integrating such a visualizer into the standard toolchain is crucial for its adoption and propose using the OCaml compiler's library form (compiler-libs) to ensure compatibility and ease of use.
The authors advocate for prioritizing accessibility and integration in the design of functional program debuggers. They believe that a well-designed visualizer can overcome the limitations of existing debugging tools and encourage wider adoption among functional programmers.
This work addresses the lack of widely used debugging tools for functional programming languages, a significant obstacle to their broader adoption. By proposing a practical and accessible approach to visualization, the authors aim to improve the debugging experience and make functional programming more appealing to a wider audience.
The current prototype supports only a subset of the OCaml language. Future work includes extending support to the full language, developing more sophisticated elision and search mechanisms, and conducting user studies to evaluate the effectiveness of the visualization approach for debugging real-world programs.
To Another Language
from source content
arxiv.org
Key Insights Distilled From
by John Whiting... at arxiv.org 11-04-2024
https://arxiv.org/pdf/2411.00618.pdfDeeper Inquiries