SpaceTime Programming: Live and Omniscient Exploration of Code and Execution
Jean-Baptiste D\"oderlein, Djamel Eddine Khelladi, Mathieu Acher, Benoit Combemale

TL;DR
SpaceTime Programming unifies code exploration and execution analysis into an integrated environment, enabling developers to interactively explore code changes and runtime behavior simultaneously, with practical implementation in Python and real-world testing.
Contribution
It introduces a novel unified programming model that combines exploratory, live, and omniscient debugging paradigms through a trace mechanism capturing code and execution states.
Findings
Implemented a Python library supporting SpaceTime Programming.
Applied in a live debugger and game development tool with a Flappy Bird-like game.
Performance overhead ranged from 35% to 150% on test suites.
Abstract
Programming environments typically separate the world of static code from the dynamic execution of programs. Developers must switch between writing code and observing its execution, often with limited tools to understand the relationship between code changes and runtime behavior. Several paradigms and approaches exist to bridge this gap, including exploratory programming for comparing code variants, live programming for immediate feedback, and omniscient debugging for exploring execution history. However, existing solutions tend to focus on specific aspects and one specific paradigm rather than providing a fully integrated environment with multiple capabilities. This paper introduces \spacetime Programming, a novel approach that unifies these paradigms to create a programming model for exploring both code modifications and execution flow. At the core of our approach is a trace mechanism…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Teaching and Learning Programming
