当前位置: X-MOL 学术Form. Methods Syst. Des. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Synbit: synthesizing bidirectional programs using unidirectional sketches
Formal Methods in System Design ( IF 0.8 ) Pub Date : 2024-01-29 , DOI: 10.1007/s10703-023-00436-9
Masaomi Yamaguchi , Kazutaka Matsuda , Cristina David , Meng Wang

We propose a technique for synthesizing bidirectional programs from the corresponding unidirectional code plus input/output examples. The core ideas are: (1) constructing a sketch using the given unidirectional program as a specification, and (2) filling the sketch in a modular fashion by exploiting the properties of bidirectional programs. These ideas are enabled by our choice of programming language, HOBiT, which is specifically designed to maintain the unidirectional program structure in bidirectional programming, and keep the parts that control bidirectional behavior modular. To evaluate our approach, we implemented it in a tool called Synbit and used it to generate bidirectional programs for intricate microbenchmarks, as well as for a few larger, more realistic problems. We also compared Synbit to a state-of-the-art unidirectional synthesis tool on the task of synthesizing backward computations. This is an extended version of the paper “Synbit: Synthesizing Bidirectional Programs using Unidirectional Sketches”, published at OOPSLA 2021. In addition to the OOPSLA’21 paper, this journal will contain additional formalization and detailed examples.



中文翻译:

Synbit:使用单向草图合成双向程序

我们提出了一种从相应的单向代码加上输入/输出示例合成双向程序的技术。核心思想是:(1)使用给定的单向程序作为规范构建草图,(2)通过利用双向程序的属性以模块化方式填充草图。这些想法是通过我们选择的编程语言 HOBiT 实现的,HOBiT 专门设计用于维护双向编程中的单向程序结构,并使控制双向行为的部分保持模块化。为了评估我们的方法,我们在一个名为Synbit 的工具中实现了它,并使用它为复杂的微基准以及一些更大、更现实的问题生成双向程序。我们还将Synbit与最先进的单向综合工具在综合向后计算的任务上进行了比较。这是在 OOPSLA 2021 上发表的论文“Synbit:使用单向草图合成双向程序”的扩展版本。除了 OOPSLA'21 论文之外,该期刊还将包含其他形式化和详细示例。

更新日期:2024-01-30
down
wechat
bug