Affiliation:
1. University of Wisconsin-Madison, USA
Abstract
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 SyGuS problems (i.e., over expressions), synthesis problems over an imperative programming language, and synthesis problems over regular expressions.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
17 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Example-Based Reasoning about the Realizability of Polymorphic Programs;Proceedings of the ACM on Programming Languages;2024-08-15
2. Decomposition-based Synthesis for Applying Divide-and-Conquer-like Algorithmic Paradigms;ACM Transactions on Programming Languages and Systems;2024-06-17
3. A Case for Synthesis of Recursive Quantum Unitary Programs;Proceedings of the ACM on Programming Languages;2024-01-05
4. Programming-by-Demonstration for Long-Horizon Robot Tasks;Proceedings of the ACM on Programming Languages;2024-01-05
5. The SemGuS Toolkit;Lecture Notes in Computer Science;2024