Patrick Rein1 , Christian Flach2 , Stefan Ramson3 , Eva Krebs4 , and Robert Hirschfeld5
The Art, Science, and Engineering of Programming, 2024, Vol. 8, Issue 3, Article 13
Submission date: 2023-10-01
Publication date: 2024-02-15
DOI: https://doi.org/10.22152/programming-journal.org/2024/8/13
Full text: PDF
Live programming provides feedback on run-time behavior by visualizing concrete values of expressions close to the source code. When using such a local perspective on run-time behavior, programmers have to mentally reconstruct the control flow if they want to understand the relation between observed values. As this requires complete and correct knowledge of all relevant code, this reconstruction is impractical for larger programs as well as in the case of unexpected program behavior. In turn, cross-cutting perspectives on run-time behavior can visualize the actual control flow directly. At the same time, cross-cutting perspectives are often difficult to navigate due to the large number of run-time events.
We propose to integrate cross-cutting perspectives into live programming environments based on local perspectives so that the two complement each other: the cross-cutting perspective provides an overview of the run-time behavior; the local perspective provides detailed feedback as well as points of interest to navigate the cross-cutting perspective. We present a cross-cutting perspective prototype in the form of a call tree browser integrated into the Babylonian/S live programming environment. In an exploratory user study, we observed that programmers found the tool useful for debugging, code comprehension, and navigation. Finally, we discuss how our prototype illustrates how the features of live programming environments may serve as the basis for other powerful dynamic development tools.
Hasso Plattner Institute - University of Potsdam, Germany
https://orcid.org/0000-0001-9454-8381
Hasso Plattner Institute - University of Potsdam, Germany
https://orcid.org/0000-0003-0549-5084
Hasso Plattner Institute - University of Potsdam, Germany
https://orcid.org/0000-0002-0913-1264
Hasso Plattner Institute - University of Potsdam, Germany
https://orcid.org/0000-0002-9089-7784
Hasso Plattner Institute - University of Potsdam, Germany
https://orcid.org/0000-0002-4249-6003