论文标题
用概率合成对黑盒组件进行建模
Modeling Black-Box Components with Probabilistic Synthesis
论文作者
论文摘要
本文与基于黑盒甲壳的合成程序有关:我们对存在组件或库的可执行执行实现的情况很感兴趣,但其内部结构尚不清楚。向我们提供了API或功能签名,并旨在综合具有等效行为的程序。 为了攻击此问题,我们详细介绍了Presyn:一种计划合成器,旨在与现有程序和编译器工具链柔性互操作。 Presyn使用高级命令式控制 - 流结构和一对合作的预测模型,以有效地缩小潜在程序的空间。这些模型可以在合成的小型示例中有效培训。 我们对五个领先的计划合成器的PRESYN评估,该合成器收集了以前的研究和现实世界软件库的112个合成基准。我们表明,Presyn能够综合比每个程序的范围更广泛的程序。我们通过两个案例研究证明了我们在现实世界代码和软件工程问题上的应用:加速器库移植和检测重复的库重新实现。
This paper is concerned with synthesizing programs based on black-box oracles: we are interested in the case where there exists an executable implementation of a component or library, but its internal structure is unknown. We are provided with just an API or function signature, and aim to synthesize a program with equivalent behavior. To attack this problem, we detail Presyn: a program synthesizer designed for flexible interoperation with existing programs and compiler toolchains. Presyn uses high-level imperative control-flow structures and a pair of cooperating predictive models to efficiently narrow the space of potential programs. These models can be trained effectively on small corpora of synthesized examples. We evaluate Presyn against five leading program synthesizers on a collection of 112 synthesis benchmarks collated from previous studies and real-world software libraries. We show that Presyn is able to synthesize a wider range of programs than each of them with less human input. We demonstrate the application of our approach to real-world code and software engineering problems with two case studies: accelerator library porting and detection of duplicated library reimplementations.