paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Bottom-up synthesis of recursive functional programs using angelic execution

基于天使式执行的自底向上递归函数式程序合成
POPL 6(POPL)2022匹配度 3/10 · 论文属于程序合成/形式化方法,但与画像核心关注的静态分析、LLM/Agent、浮点程序分析和贝叶斯程序分析均无直接关联;仅在天使语义、版本空间学习等形式化技术上有边缘参考价值。引用 38 inbox
Anders Miltner, Adrian Trejo Nuñez, Ana Brendel, Swarat Chaudhuri, Isil Dillig
crossref: 2026-09-10

AI 速览

一句话:提出基于天使语义与版本空间学习的自底向上递归函数式程序合成方法。

本文研究如何以纯自底向上方式从逻辑规约合成递归函数式程序。自底向上方法常优于自顶向下,但有效方法需要执行待合成代码的子表达式,而未构造完成的递归子表达式无法直接执行。作者引入天使语义:先合成在天使语义下满足规约的程序,分析天使执行中做出的假设,据此强化原规约,再以强化后的规约重新合成。该天使合成算法基于版本空间学习,可高效处理算法中大量增量合成调用。作者实现原型 Burst,并在已有合成基准上评估,可解决基准集中 94% 的问题,优于先前工作。

问题
如何从逻辑规约出发,纯自底向上地合成递归函数式程序,并解决递归子表达式在程序未完成前无法执行的核心困难。
方法
采用天使语义进行合成,分析天使执行中的假设以强化规约并迭代重试;核心算法基于版本空间学习以处理增量合成调用。
评估
实现原型 Burst,在先前工作的合成基准上评测,解决 94% 基准,性能优于已有方法。
原文摘要(Abstract)

We present a novel bottom-up method for the synthesis of functional recursive programs. While bottom-up synthesis techniques can work better than top-down methods in certain settings, there is no prior technique for synthesizing recursive programs from logical specifications in a purely bottom-up fashion. The main challenge is that effective bottom-up methods need to execute sub-expressions of the code being synthesized, but it is impossible to execute a recursive subexpression of a program that has not been fully constructed yet. In this paper, we address this challenge using the concept of angelic semantics. Specifically, our method finds a program that satisfies the specification under angelic semantics (we refer to this as angelic synthesis), analyzes the assumptions made during its angelic execution, uses this analysis to strengthen the specification, and finally reattempts synthesis with the strengthened specification. Our proposed angelic synthesis algorithm is based on version space learning and therefore deals effectively with many incremental synthesis calls made during the overall algorithm. We have implemented this approach in a prototype called Burst and evaluate it on synthesis problems from prior work. Our experiments show that Burst is able to synthesize a solution to 94% of the benchmarks in our benchmark suite, outperforming prior work.

链接与引用

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

BibTeX
@article{paperbot1550,
  title = {Bottom-up synthesis of recursive functional programs using angelic execution},
  author = {Anders Miltner and Adrian Trejo Nuñez and Ana Brendel and Swarat Chaudhuri and Isil Dillig},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {POPL},
  year = {2022},
  doi = {10.1145/3498682}
}