University of Leicester
Browse

Visualizing the evaluation of functional programs for debugging

Download (379.5 kB)
conference contribution
posted on 2018-05-17, 10:25 authored by John Whitington, Tom Ridge
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 functional such as mutable state, input/output and exceptions. We describe initial work on the use of such visualizations to address the problem of program debugging, which is our ultimate aim.

History

Citation

OpenAccess Series in Informatics, 2017, 56, pp. 7:1-7:9

Author affiliation

/Organisation/COLLEGE OF SCIENCE AND ENGINEERING/Department of Informatics

Source

6th Symposium on Languages, Applications and Technologies (SLATE 2017)

Version

  • VoR (Version of Record)

Published in

OpenAccess Series in Informatics

Publisher

Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik

issn

2190-6807

isbn

9783959770569

Copyright date

2017

Available date

2018-05-17

Publisher version

http://drops.dagstuhl.de/opus/volltexte/2017/7942/

Language

en

Usage metrics

    University of Leicester Publications

    Categories

    No categories selected

    Licence

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC