Towards Bidirectional Live Programming for Incomplete Programs
Xing Zhang, Zhenjiang Hu
摘要
Bidirectional live programming not only allows software developers to see continuous feedback on the output as they write the program, but also allows them to modify the program by directly manipulating the output, so that the modified program can get the output that was directly manipulated. Despite the appealing of existing bidirectional live programming systems, there is a big limitation: they cannot deal with incomplete programs where code blanks exist in the source programs.
In this paper, we propose a framework to support bidirectional live programming for incomplete programs, by extending the output value structure, introducing hole binding, and formally defining bidirectional evaluators that are well-behaved. To illustrate the usefulness of the framework, we realize the core bidirectional evaluations of incomplete programs in a tool called Bidirectional Preview. Our experimental results show that our extended backward evaluation for incomplete programs is as efficient as that for complete programs in that it is only 21𝑚𝑠 slower on a program with 10 holes than that on its full program, and our extended forward evaluation makes no difference. Furthermore, we use quick sort and student grades, two nontrivial examples of incomplete programs, to demonstrate its usefulness in algorithm teaching and program debugging.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper2
- Fusing Direct Manipulations into Functional ProgramsXing Zhang, Ruifeng Xie, Guanchen Guo, Xiao He 等POPL 2024 · 被引用 5 次
- Fast Direct Manipulation Programming with Patch-Reconciliation CorrespondenceParker Ziegler, Justin Lubin, Sarah E. ChasinsPLDI 2025 · 被引用 1 次
它引用的顶会 Paper1
相关 Paper
- Bidirectional Object-Oriented Programming: Towards Programmatic and Direct Manipulation of ObjectsXing Zhang, Guanchen Guo, Xiao He, Zhenjiang HuOOPSLA 2023 · 被引用 9 次
- Live Verification in an Interactive Proof AssistantSamuel Gruetter, Viktor Fukala, Adam ChlipalaPLDI 2024 · 被引用 3 次
- Synbit: synthesizing bidirectional programs using unidirectional sketchesMasaomi Yamaguchi, Kazutaka Matsuda, Cristina David, Meng WangOOPSLA 2021 · 被引用 6 次
- Focused Live Programming with Loop SeedsSorin LernerUIST 2020 · 被引用 6 次
- Feedback-Directed Partial ExecutionIshrak Hayet, Adam Scott, Marcelo d'AmorimISSTA 2024 · 被引用 1 次
