Bidirectional Object-Oriented Programming: Towards Programmatic and Direct Manipulation of Objects
Xing Zhang, Guanchen Guo, Xiao He, Zhenjiang Hu
Abstract
Many bidirectional programming languages, which are mainly functional and relational, have been designed to support writing programs that run in both forward and backward directions. Nevertheless, there is little study on the bidirectionalization of object-oriented languages that are more popular in practice. This paper presents the first bidirectional object-oriented language that supports programmatic and direct manipulation of objects. Specifically, we carefully extend a core object-oriented language, which has a standard forward evaluation semantics, with backward updating semantics for class inheritance hierarchies and references. We formally prove that the bidirectional evaluation semantics satisfies the round-tripping properties if the output is altered consistently. To validate the utility of our approach, we have developed a tool called BiOOP for generating HTML documents through bidirectional GUI design. We evaluate the expressiveness and effectiveness of BiOOP for HTML webpage development by reproducing ten classic object-oriented applications from a Java Swing tutorial and one large project from GitHub. The experimental results show the response time of direct manipulation programming on object-oriented programs that produce HTML webpages is acceptable for developers.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 5905d4f7-5e84-463b-b308-2f8da08d9059Cited by top-tier papers3
- Fusing Direct Manipulations into Functional ProgramsXing Zhang, Ruifeng Xie, Guanchen Guo, Xiao He et al.POPL 2024 · 5 citations
- Fast Direct Manipulation Programming with Patch-Reconciliation CorrespondenceParker Ziegler, Justin Lubin, Sarah E. ChasinsPLDI 2025 · 1 citation
- Direct Manipulation and Natural Language Programming, Together at Last?Parker Ziegler, David Minh-Duy Cao, Justin Lubin, Sarah E. ChasinsOOPSLA 2026
Related papers
- Synbit: synthesizing bidirectional programs using unidirectional sketchesMasaomi Yamaguchi, Kazutaka Matsuda, Cristina David, Meng WangOOPSLA 2021 · 6 citations
- Towards Bidirectional Live Programming for Incomplete ProgramsXing Zhang, Zhenjiang HuICSE 2022 · 8 citations
- Handling bidirectional control flowYizhou Zhang, Guido Salvaneschi, Andrew C. MyersOOPSLA 2020 · 12 citations
- Verifying Functional Correctness Properties at the Level of Java BytecodeMarco Paganoni, Carlo A. FuriaFM 2023 · 9 citations
- Decomposition diversity with symmetric data and codataDavid Binder, Julian Jabs, Ingo Skupin, Klaus OstermannPOPL 2020 · 2 citations
