The essence of programming is abstraction. That is the problem, for we have very limited powers of abstraction. Live programming helps by revealing how a program will execute as it is edited, grounding the abstract in a concrete example. We propose a more fundamental solution: a programming medium which reifies execution. Programs are execution traces, and programming is direct manipulation of such executions. This approach offers pervasive liveness like that of spreadsheets, while still providing sequential procedures, input/output, and side-effects. Reified execution also enables a novel programming technique: interventions. An intervention tests and overrides behavior at a specific point in a reified execution. Interventions are made through direct manipulation in the programming environment and are stable because code is edited structurally, not textually. We will show how interventions allow testing and mocking to be done more easily and with finer granularity than with code-based testing frameworks. We will also demonstrate how interventions provide scaffolding that assists program development through small steps of gradual abstraction.
Tue 24 OctDisplayed time zone: Tijuana, Baja California change
08:30 - 10:00
|Keynote: User Interfaces for Live Programming|
Jun Kato National Institute of Advanced Industrial Science and Technology, Japan
LIVEPre-print Media Attached
|Live Programming as Gradual Abstraction|
Sean McDirmid IndependentPre-print Media Attached