Broadening the View of Live Programmers

Integrating a Cross-Cutting Perspective on Run-Time Behavior into a Live Programming Environment

Patrick Rein1 OrcidLogo, Christian Flach2 OrcidLogo, Stefan Ramson3 OrcidLogo, Eva Krebs4 OrcidLogo, and Robert Hirschfeld5 OrcidLogo

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

Abstract

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.

  1. Hasso Plattner Institute - University of Potsdam, Germany
    OrcidLogo https://orcid.org/0000-0001-9454-8381

  2. Hasso Plattner Institute - University of Potsdam, Germany
    OrcidLogo https://orcid.org/0000-0003-0549-5084

  3. Hasso Plattner Institute - University of Potsdam, Germany
    OrcidLogo https://orcid.org/0000-0002-0913-1264

  4. Hasso Plattner Institute - University of Potsdam, Germany
    OrcidLogo https://orcid.org/0000-0002-9089-7784

  5. Hasso Plattner Institute - University of Potsdam, Germany
    OrcidLogo https://orcid.org/0000-0002-4249-6003