论文标题
语义引导的合成
Semantics-Guided Synthesis
论文作者
论文摘要
本文为程序合成开发了一个新的框架,称为语义引导的合成(Semgus),该框架使用户可以为语言中的构造提供语法和语义。 Semgus接受递归定义的大语义,例如,它可以使用它来指定和解决综合问题,这可能包含具有无界行为的循环。 Semgus的可自定义性质还允许在非标准语义(例如抽象语义)上定义合成问题。除了SEMGUS框架外,我们还开发了一种用于解决Semgus问题的算法,该算法可以通过编码Semgus问题作为对受约束的号角条款的证明搜索来证明,尤其是我们的方法,我们的方法首先是我们意识到,我们可以证明无与伦比的综合问题,从而使无关紧要的是无关紧要的,这是对约束喇叭等级的证明搜索,从而使无关紧要的探索范围毫无疑问。我们在一个名为Mysy的工具中实现了该技术,并将其应用于Sygus问题(即表达式)和综合问题上的问题。
This paper develops a new framework for program synthesis, called semantics-guided synthesis (SemGuS), that allows a user to provide both the syntax and the semantics for the constructs in the language. SemGuS accepts a recursively defined big-step semantics, which allows it, for example, to be used to specify and solve synthesis problems over an imperative programming language that may contain loops with unbounded behavior. The customizable nature of SemGuS also allows synthesis problems to be defined over a non-standard semantics, such as an abstract semantics. In addition to the SemGuS framework, we develop an algorithm for solving SemGuS problems that is capable of both synthesizing programs and proving unrealizability, by encoding a SemGuS problem as a proof search over Constrained Horn Clauses: in particular, our approach is the first that we are aware of that can prove unrealizabilty for synthesis problems that involve imperative programs with unbounded loops, over an infinite syntactic search space. We implemented the technique in a tool called MESSY, and applied it to both SyGuS problems(i.e., over expressions) and synthesis problems over an imperative programming language.