Typed Image-based Programming with Structure Editing

10/18/2021
by   Jonathan Edwards, et al.
0

Many beloved programming systems are image-based: self-contained worlds that persist both code and data in a single file. Examples include Smalltalk, LISP, HyperCard, Flash, and spreadsheets. Image-based programming avoids much of the complexity of modern programming technology stacks and encourages more casual and exploratory programming. However conventional file-based programming has better support for collaboration and deployment. These problems have been blamed for the limited commercial success of Smalltalk. We propose to enable collaboration in image-based programming via types and structure editing. We focus on the problem of schema change on persistent data. We turn to static types, which paradoxically require more schema change but also provide a mechanism to express and execute those changes. To determine those changes we turn to structure editing, so that we can capture changes in type definitions with sufficient fidelity to automatically adapt the data to suit. We conjecture that typical schema changes can be handled through structure editing of static types. That positions us to tackle collaboration with what could be called version control for structure editing. We present a theory realizing this idea, which is our main technical contribution. While we focus here on editing types, if we can extend the approach to cover the entire programming experience then it would offer a new way to collaborate in image-based programming.

READ FULL TEXT
research
09/20/2023

Live Local Schema Change: Challenge Problems

Schema change is an unsolved problem in both live programming and local-...
research
03/23/2023

SINE: Semantic-driven Image-based NeRF Editing with Prior-guided Editing Field

Despite the great success in 2D editing using user-friendly tools, such ...
research
09/22/2022

CCR: Facial Image Editing with Continuity, Consistency and Reversibility

Three problems exist in sequential facial image editing: incontinuous ed...
research
07/20/2023

Projectional Editors for JSON-Based DSLs

Augmenting text-based programming with rich structured interactions has ...
research
10/05/2020

A Benchmark and Baseline for Language-Driven Image Editing

Language-driven image editing can significantly save the laborious image...
research
09/18/2017

Non-Linear Editor for Text-Based Screencast

Screencasts, where computer screen is broadcast to a large audience on t...
research
08/01/2018

Using Standard Typing Algorithms Incrementally

Modern languages are equipped with static type checking/inference that h...

Please sign up or login with your details

Forgot password? Click here to reset