SPLASH 2022
Mon 5 - Sat 10 December 2022 Auckland, New Zealand
Mon 5 Dec 2022 09:45 - 10:00 at Seminar Room LG004 - Session 1

Abstraction is at the core of programming, but it has a cost. We exhort programmers to use proper abstractions like functions but they often find it easier to copy & paste instead. Copy & paste is roundly criticized because subsequent changes to copies may have to be manually reconciled, which is easily overlooked and easily mistaken. It seems there is a conflict between the generality and reusability of abstraction with the simplicity of copying and modifying code.

We suggest that this conflict arises because we are still thinking in terms of paper-based notations. Indeed the term ``copy & paste'' originates from the practice of physically cutting and gluing slips of paper. But an interactive programming environment can free us from the limitations of paper. We propose \emph{managed copy & paste}, in which the programming environment records copy & paste operations, along with structural edit operations, so that it can track the differences between copies and reconcile them on command. These capabilities mitigate the aforementioned problems of copy & paste, allowing abstraction to be deferred or reduced.

Managed copy & paste resembles version control as in git, except that it works not between versions of a program but between copies within the program. It is based on a new theory of structural editing and version control that offers precise differencing based on edit history rather than the heuristic differencing of textual version control. We informally explain this theory and demonstrate a prototype implementation of a data science notebook. Lastly, we suggest further mechanisms of \textit{gradual abstraction} that could be provided by the programming environment to lessen the cognitive load of programming.

Mon 5 Dec

Displayed time zone: Auckland, Wellington change

09:00 - 10:00
09:00
15m
Talk
Creating Dynamic Prototypes from Web Page SketchesVirtual
PAINT
Tommaso Calo Politecnico di Torino, Luigi De Russis Politecnico di Torino
DOI
09:15
15m
Talk
Toward a VR-Native Live Programming EnvironmentVirtual
PAINT
Leonard Geier University of Potsdam; Hasso Plattner Institute, Clemens Tiedt University of Potsdam; Hasso Plattner Institute, Tom Beckmann University of Potsdam; Hasso Plattner Institute, Marcel Taeumel University of Potsdam; Hasso Plattner Institute, Robert Hirschfeld University of Potsdam; Hasso Plattner Institute
DOI
09:30
15m
Talk
Suppose You Had Blocks within a NotebookVirtual
PAINT
Mauricio Verano Merino Vrije Universiteit Amsterdam, Juan Pablo Sáenz Politecnico di Torino, Ana María Díaz Castillo Teach for All
DOI Pre-print
09:45
15m
Talk
Interaction vs. Abstraction: Managed Copy and PasteVirtual
PAINT
Jonathan Edwards Independent, Tomas Petricek Charles University
DOI Pre-print