arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2008.09836cs.PL
收藏

语义引导合成

Semantics-Guided Synthesis

Jinwoo Kim, Qinheping Hu, Loris D'Antoni, Thomas Reps

摘要:

本文提出了一种新的程序合成框架,称为语义引导合成(SemGuS),它允许用户提供语法和语义的语言中的结构。SemGuS接受递归定义的大步语义,这允许它用于指定和解决命令式程序设计语言上的合成问题,该命令式编程语言可能包含具有无限行为的循环。SemGuS的可定制性质还允许在非标准语义(例如抽象语义)上定义合成问题。除了SemGuS框架,我们开发了一种算法,用于解决SemGuS问题,能够合成程序和证明不可实现性,通过编码SemGuS问题作为一个证明搜索约束角子句:特别是,我们的方法是第一个,我们知道,可以证明不可实现性的合成问题,涉及的强制性程序与无界循环,在一个无限的语法搜索空间。我们在一个名为MESSY的工具中实现了该技术,并将其应用于两个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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑