Presynthesis: Towards Scaling Up Program Synthesis with Finer-Grained Abstract Semantics

📅 2026-04-14
📈 Citations: 0
Influential: 0
📄 PDF

career value

186K/year
🤖 AI Summary
This work addresses the performance bottleneck in search-based program synthesis caused by the high computational cost of fine-grained abstract semantics, which, while effective at pruning incorrect programs, hinders overall efficiency. To overcome this limitation, the authors propose an offline pre-synthesis approach that first constructs a tree automaton over the input space to precisely capture the abstract semantics of the domain-specific language (DSL). This automaton enables the generation of an efficient pruning oracle that decouples abstract semantic reasoning from the online synthesis process. By doing so, the method achieves, for the first time, highly efficient synthesis under fine-grained abstract semantics. Empirical evaluations demonstrate substantial performance improvements over state-of-the-art techniques across three diverse domains: SQL query synthesis, string transformation, and matrix manipulation.

Technology Category

Application Category

📝 Abstract
Abstract semantics has proven to be instrumental for accelerating search-based program synthesis, by enabling the sound pruning of a set of incorrect programs (without enumerating them). One may expect faster synthesis with increasingly finer-grained abstract semantics. Unfortunately, to the best of our knowledge, this is not the case, yet. The reason is because, as abstraction granularity increases -- while fewer programs are enumerated -- pruning becomes more costly. This imposes a fundamental limit on the overall synthesis performance, which we aim to address in this work. Our key idea is to introduce an offline presynthesis phase, which consists of two steps. Given a DSL with abstract semantics, the first semantics modeling step constructs a tree automaton A for a space of inputs -- such that, for any program P and for any considered input I, A has a run that corresponds to P's execution on I under abstract semantics. Then, the second step builds an oracle O for A. This O enables fast pruning during synthesis, by allowing us to efficiently find exactly those DSL programs that satisfy a given input-output example under abstract semantics. We have implemented this presynthesis-based synthesis paradigm in a framework, Foresighter. On top of it, we have developed three instantiations for SQL, string transformation, and matrix manipulation. All of them significantly outperform prior work in the respective domains.
Problem

Research questions and friction points this paper is trying to address.

program synthesis
abstract semantics
search pruning
scalability
tree automaton
Innovation

Methods, ideas, or system contributions that make the work stand out.

program synthesis
abstract semantics
tree automaton
presynthesis
oracle
🔎 Similar Papers
2024-08-22arXiv.orgCitations: 2