paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Tunneling through the Hill: Multi-way Intersection for Version-Space Algebras in Program Synthesis

穿越山峰:程序合成中版本空间代数的多路交集
OOPSLA 9(OOPSLA2)2025匹配度 3/10 · 论文研究程序合成中的版本空间代数求交加速,属于程序语言与形式化方法的大范畴,但未涉及用户核心关注的 LLM/Agent 与静态分析/形式化验证交叉、浮点程序分析或贝叶斯程序分析。其问题驱动和工程落地特点有一定可借鉴性,但研究方向匹配度较低。引用 0 inbox
Guanlin Chen, Ruyi Ji, Shuhao Zhang, Yingfei Xiong
crossref: 2026-09-10

AI 速览

一句话:提出多路交集方法,直接合并多个小型版本空间代数,避免中间结果爆炸,显著加速程序合成。

版本空间代数(VSA)是程序合成中表示程序集合的有效数据结构,但其在处理大量 IO 示例时效率低下:典型合成器先为每个示例构造一个 VSA,再逐个求交,而两个 VSA 的交集可能远大于原 VSA,这种膨胀在迭代中累积,使中间 VSA 规模迅速爆炸。本文考察迭代求交过程后发现,尽管中间结果可能巨大,最终 VSA 在实践中通常很小,因为只有少数程序能通过全部示例。基于此,作者提出多路交集方法,直接由多个小型 VSA 求交得到最终结果,绕开构造巨大中间 VSA 的瓶颈;并针对原有算法在多 VSA 场景下的低效,设计了避免大量不必要 VSA 节点的新算法。该方法被集成到两个基于 VSA 的 SOTA 合成器中——一个通用 VSA 合成器和一个面向字符串领域的 Blaze。在 4 个数据集、994 个合成任务上的评估表明,该方法最多多解决 105 个任务,取得 7.36 倍加速。

问题
基于 VSA 的合成器在给定多个 IO 示例时需逐个求交,而两两交集可能远大于原 VSA,导致中间结果规模在迭代中爆炸,严重制约效率。
方法
利用“中间 VSA 虽大但最终 VSA 通常很小”的观察,提出多路交集:直接让多个小型 VSA 一次性求交得到最终结果,并设计新算法避免产生大多数不必要的 VSA 节点。
评估
将方法集成到通用 VSA 合成器与字符串域合成器 Blaze 中,在 4 个数据集、994 个合成任务上与原有方法对比,最多多解 105 个任务并实现最高 7.36 倍加速。
原文摘要(Abstract)

Version space algebra (VSA) is an effective data structure for representing sets of programs and has been extensively used in program synthesis. Despite this success, a crucial shortcoming of VSA-based synthesis is its inefficiency when processing many examples. Given a set of IO examples, a typical VSA-based synthesizer runs by first constructing an individual VSA for each example and then iteratively intersecting these VSAs one by one. However, the intersection of two VSAs can be much larger than the original ones – this effect accumulates during the iteration, making the scale of intermediate VSAs quickly explode. In this paper, we aim to reduce the cost of intersecting VSAs in synthesis. We investigate the process of the iterative intersection and observe that, although this process may construct some huge intermediate VSAs, its final VSA is usually small in practice because only a few programs can pass all examples. Utilizing this observation, we propose the approach of multi-way intersection , which directly intersects multiple small VSAs into the final result, thus avoiding the previous bottleneck of constructing huge intermediate VSAs. Furthermore, since the previous intersection algorithm is inefficient for multiple VSAs, we design a novel algorithm to avoid most unnecessary VSA nodes. We integrated our approach into two SOTA VSA-based synthesizers: a general synthesizer based on VSA and a specialized one for the string domain Blaze. We evaluate them over 4 different datasets, 994 synthesis tasks; the results show that our approach can significantly improve the performance of VSA-based synthesis, with up to 105 more tasks solved and a speedup of 7.36×.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2984,
  title = {Tunneling through the Hill: Multi-way Intersection for Version-Space Algebras in Program Synthesis},
  author = {Guanlin Chen and Ruyi Ji and Shuhao Zhang and Yingfei Xiong},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA2},
  year = {2025},
  doi = {10.1145/3763176}
}