Abstract:
This demonstration presents a live programming environment for data structures called Kanon [
oka2018onward],
*. The goal of the environment is to support professional programmers when they develop new data structures and operations thereof. The key feature for data structures is its automatic visualization of objects that are created in a program execution. We first overviews the environment through a coding session of a small data structure. The environment assumes a program is written in a test-driven style, and displays objects as a node-link diagram. We introduce the notion of visualization contexts, which the program state stopped at the cursor position, and used for navigating the visualization. We then discusses the features that support liveness and data-structures. The jump-to-construction mechanism navigates the programmer from a visual element to a code fragment that made the element. Our proposed graph layout algorithm automatically analyzes the object structure and places nodes so as to help the programmers to recognize the relations between objects. An on-the-fly test case generation mechanism enables top-down programming by letting the programmers handcraft an expected result upon a call to an unimplemented function. Lastly, we discuss several issues for future research. Programming complicated data structures require customized visualization so that the programmer can see the objects at different levels of abstraction. In order not to distract the programmers' focus, it is crucial to handle errors appropriately especially in an environment where program code can be erroneous in the middle of editing. Our user experiment discovered some programming mistakes that can only be observed with the live programming environment, which might be an effect of live programming on the way of programming.
Reference:
Programming Experiences with a Live Programming Environment for Data Structures (Hidehiko Masuhara, Akio Oka and Tomoki Ogushi), Demonstration at the International Conference on the Art, Science, and Engineering of Programming ('19), 2019.
Bibtex Entry:
@misc{masuhara2019programming-demo,
author = {Hidehiko Masuhara and Akio Oka and Tomoki Ogushi},
title = {Programming Experiences with a Live Programming Environment for Data Structures},
howpublished = {Demonstration at the International Conference on the Art, Science, and Engineering of Programming (<Programming>'19)},
month = apr,
keywords = {JavaScript, Kanon},
year = 2019,
location = {Genova, Italy},
url = {https://2019.programming-conference.org/details/programming-2019-Demos/8/Programming-Experiences-with-a-Live-Programming-Environment-for-Data-Structures},
abstract = {This demonstration presents a live programming environment for data structures called Kanon \cite{oka2018onward},\href{https://prg-titech.github.io/Kanon/}{*}. The goal of the environment is to support professional programmers when they develop new data structures and operations thereof. The key feature for data structures is its automatic visualization of objects that are created in a program execution.
We first overviews the environment through a coding session of a small data structure. The environment assumes a program is written in a test-driven style, and displays objects as a node-link diagram. We introduce the notion of visualization contexts, which the program state stopped at the cursor position, and used for navigating the visualization.
We then discusses the features that support liveness and data-structures. The jump-to-construction mechanism navigates the programmer from a visual element to a code fragment that made the element. Our proposed graph layout algorithm automatically analyzes the object structure and places nodes so as to help the programmers to recognize the relations between objects. An on-the-fly test case generation mechanism enables top-down programming by letting the programmers handcraft an expected result upon a call to an unimplemented function.
Lastly, we discuss several issues for future research. Programming complicated data structures require customized visualization so that the programmer can see the objects at different levels of abstraction. In order not to distract the programmers' focus, it is crucial to handle errors appropriately especially in an environment where program code can be erroneous in the middle of editing. Our user experiment discovered some programming mistakes that can only be observed with the live programming environment, which might be an effect of live programming on the way of programming.}
}