Programming Experiences with a Live Programming Environment for Data Structures
This demonstration presents a live programming environment for data structures called Kanon [1,2]. 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.
[1] Oka, Masuhara and Aotani, “Live, synchronized, and mental map preserving visualization for data structure programming”, in Proceedings of Onward! 2018.
Wed 3 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:45 - 15:30 | |||
13:45 30mTalk | A Language-Parametric Toolchain for Mining Idiomatic Code Patterns Demos Johan Fabry Raincode Labs, Belgium, Vadim Zaytsev Raincode Labs, Belgium, Kim Mens Université Catholique de Louvain, Belgium, Siegfried Nijssen UC Louvain, Hoang Son Pham UC Louvain, Coen De Roover Vrije Universiteit Brussel, Dario Di Nucci Vrije Universiteit Brussel, Tim Molderez Vrije Universiteit Brussel | ||
14:15 30mTalk | Quickref: Auto-Documenting the Common Lisp Ecosystem Demos Didier Verna EPITA / LRDE | ||
14:45 45mTalk | Programming Experiences with a Live Programming Environment for Data Structures Demos Hidehiko Masuhara Tokyo Institute of Technology, Akio Oka Tokyo Institute of Technology, Tomoki Ogushi Tokyo Tech |