一句话:为长时程序引入与补丁对应的协调过程,直接更新输出而跳过前向求值,从而降低交互延迟。
直接操纵编程让用户通过 GUI 交互而非直接写代码来修改程序。现有系统依赖补丁修改程序并前向求值以得到新输出,该架构只适用于秒级以内的短时程序,难以支持数据可视化、地图等长时程序。本文提出将直接操纵编程扩展到长时程序:在标准 patch 组件之外引入 recon 协调组件,使 GUI 交互可直接更新输出而无需前向求值,并为地理空间数据可视化领域设计配对的 patch/recon 过程。作者证明二者对应是 sound 的:recon 输出与前向求值 patch 后程序所得输出一致;recon 还可增量并行执行。在真实地理空间可视化任务上,原型相对前向求值将接口延迟中位数降低 2.92 倍。
Direct manipulation programming gives users a way to write programs without directly writing code, by using the familiar GUI-style interactions they know from direct manipulation interfaces. To date, direct manipulation programming systems have relied on two core components: (1) a patch component, which modifies the program based on a GUI interaction, and (2) a forward evaluator , which executes the modified program to produce an updated program output. This architecture has worked for developing short-running programs—i.e., programs that reliably execute in <1 second—generating outputs such as SVG and HTML documents. However, direct manipulation programming has not yet been applied to long-running programs (e.g., data visualization, mapping), perhaps because executing such programs in response to every GUI interaction would mean crossing outside of interactive speeds. We propose extending direct manipulation programming to long-running programs by pairing a standard patch component ( patch ) with a corresponding reconciliation component ( recon ). recon directly updates the program output in response to a GUI interaction, obviating the need for forward evaluation. We introduce corresponding patch and recon procedures for the domain of geospatial data visualization and prove them sound—that is, we show that the output produced by recon is identical to the output produced by forward-evaluating a patch -modified program. recon can operate both incrementally and in parallel with patch . Our implementation of our patch - recon instantiation achieves a 2.92× median reduction in interface latency compared to forward evaluation on a suite of real-world geospatial visualization tasks. Looking forward, our results suggest that patch-reconciliation correspondence offers a promising pathway for extending direct manipulation programming to domains involving large-scale computation.
@article{paperbot3151,
title = {Fast Direct Manipulation Programming with Patch-Reconciliation Correspondence},
author = {Parker Ziegler and Justin Lubin and Sarah E. Chasins},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {PLDI},
year = {2025},
doi = {10.1145/3729278}
}