Babylonian-style Programming: Design and Implementation of an Integration of Live Examples into General-purpose Source Code

02/01/2019
by   David Rauch, et al.
0

When working on a program, developers traditionally have to simulate the behavior of the abstract code in their heads until they can execute the application. Live programming aims to support the development and comprehension of programs by providing more immediate feedback on program behavior, but the divide between code and behavior often remains. The goal of example-based live programming is to remove this gap by allowing programmers to explore the actual behavior of their code during development. This is achieved by defining live examples for parts of the application. The idea of live examples has been already addressed in other tools and environments. However, most of those solutions are limited to specific domains and are suitable only for small programs. Thus, we aim to extend the application of example-based live programming to more complex programs potentially spanning multiple modules. We investigate existing solutions to derive a set of requirements for an integration of live examples into source code. Based on these requirements we propose a new approach to live examples and present a prototype in its support. We reproduce, discuss, and extend scenarios from related work to show the practicality of our approach in the context of larger, more complicated, and with that also more realistic scenarios. Also, we measure and evaluate the system response time of our prototypical implementation. Our first results show that example-based live programming can provide more insights into the run-time behavior of parameterized code for non-trivial programs. They also reveal unsolved and new challenges affecting example-based live programming environments. In presenting this more general approach to example-based live programming, we hope to motivate further research into this area and to make practical solutions available.

READ FULL TEXT

page 8

page 10

page 23

page 35

page 36

page 39

research
06/15/2023

Live Exploration of AI-Generated Programs

AI-powered programming assistants are increasingly gaining popularity, w...
research
06/30/2022

Maniposynth: Bimodal Tangible Functional Programming

Traditionally, writing code is a non-graphical, abstract, and linear pro...
research
03/12/2023

Live, Rich, and Composable: Qualities for Programming Beyond Static Text

Efforts to push programming beyond static textual code have sought to im...
research
07/23/2018

Exploratory and Live, Programming and Coding: A Literature Study Comparing Perspectives on Liveness

Various programming tools, languages, and environments give programmers ...
research
05/26/2021

Implementation of Live Reverse Debugging in LLDB

Debugging is an essential process with a large share of the development ...
research
02/14/2020

Sub-method, partial behavioral reflection with Reflectivity: Looking back on 10 years of use

Context. Refining or altering existing behavior is the daily work of eve...
research
09/20/2023

Live Local Schema Change: Challenge Problems

Schema change is an unsolved problem in both live programming and local-...

Please sign up or login with your details

Forgot password? Click here to reset