Fast Direct Manipulation Programming with Patch-Reconciliation Correspondence
summary
Introduces a patch-recon architecture that pairs syntactic program patches with a semantic recon that directly updates map output (in-place updates of marks and reuse of unaffected marks) and proves soundness: recon(V,diff) equals eval(patch(P,diff)). Implements CartoKit for geospatial visualization, reimplements six newsroom maps across 80 interactions, and reports a 2.92x median latency reduction (up to 6x on an 18s-eval case), enabling interactive edits without full program re-evaluation.
AI-written summary · about
chapters (21)
- 0:00Research introduction
- 0:22Motivation for direct manipulation
- 1:05Direct manipulation systems
- 2:09Patch-eval challenges
- 3:12Patch-eval fails on large data
- 4:15Caching difficulties
- 5:19Patch reconciliation insight
- 6:02How reconciliation works
- 7:49Formal definition
- 9:15CardoKit example
- 10:19User interaction and diffs
- 11:02Patch updates program
- 11:25Reconciliation updates output
- 12:27Performance evaluation
- 13:53Generalizing to other systems
- 14:57Implementing in Sketch-n-Sketch
- 15:17Broader implications
- 15:58Summary and availability
- 16:40Q&A: Recon functions
- 17:46Q&A: Diffs and actions
- 18:49Q&A: GUI difficulty
related talks
18mRestructuring Structure Editing
45mResidential Programming without Mutable State
35mA Live Programming Experience
28mDocument-oriented programming based on edit history
33mThe Functional Final Frontier
11mDenicek: Computational Substrate for Document-Oriented End-User Programming
32mREPL, do you speak it
01h 29mScalafix Workshop
