Although the modularity of functional programming has numerous advantages, the "blackbox" nature of functions creates challenges in debugging and observing intermediate values. This challenge becomes particularly pronounced when many nested recursive calls are involved as there does not exist an elegant way to observe intermediate computational values.
Stemming from this challenge, our group proposes implementing a visual debugger to view the intermediate computational steps of a functional program's execution. Due to the complexity of Haskell and limited scope/timeline of this project, our group has decided to implement a visual debugger for the Nano functional language. This debugger will allow for the user to step through and visualize the intermediate values and computations of functions.
Mile Stone 1: Successfully implement Nano interpreter/parser (complete CSE130 homework assignment 4)
Mile Stone 4: Design and implement brick GUI to visualize intermediate values and control debugger stepping
We believe this project is adequately challenging in scope to cause learning, while also remaining feasible for completion within the next four weeks. Moreover, we can gradually implement the debugger to visualize a subset of Nano capabilities to begin. This allows for our group to modularly and gradually improve the project to ensure we are able to present some version of a finalized project for the final presentation.