<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Program Synthesis | Kanghee Park</title><link>https://ebmoon.github.io/tags/program-synthesis/</link><atom:link href="https://ebmoon.github.io/tags/program-synthesis/index.xml" rel="self" type="application/rss+xml"/><description>Program Synthesis</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Wed, 01 Oct 2025 00:00:00 +0000</lastBuildDate><image><url>https://ebmoon.github.io/media/icon_hu_4bc81f2edf496b34.png</url><title>Program Synthesis</title><link>https://ebmoon.github.io/tags/program-synthesis/</link></image><item><title>LOUD: Synthesizing Strongest and Weakest Specifications</title><link>https://ebmoon.github.io/publication/preprint/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>https://ebmoon.github.io/publication/preprint/</guid><description>&lt;p&gt;This work extends the specification-synthesis framework from my
to a more general setting. The earlier framework synthesized strongest properties for quantifier-free queries; LOUD handles queries with existential quantifiers and supports both over-approximating and under-approximating specifications.&lt;/p&gt;
&lt;p&gt;This matters for programs with nondeterministic or concurrent behavior, where useful specifications can describe what must happen across all executions as well as what can happen along some execution. LOUD captures these two views through strongest L-consequences and weakest L-implicants.&lt;/p&gt;
&lt;p&gt;The paper introduces the LOUD framework and the ASPIRE solver. The evaluation uses the framework to describe and localize bugs, extract properties from concurrent programs, and synthesize winning strategies in two-player games.&lt;/p&gt;</description></item><item><title>Modular System Synthesis</title><link>https://ebmoon.github.io/publication/modular-system-synthesis/</link><pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate><guid>https://ebmoon.github.io/publication/modular-system-synthesis/</guid><description>&lt;p&gt;This paper studies how to make program synthesis scale by exploiting modularity. Instead of synthesizing a large system in one monolithic search, the approach builds larger programs from smaller synthesized components.&lt;/p&gt;
&lt;p&gt;The key idea is to structure the decomposition so that each subproblem remains similar in character to the original synthesis problem. This keeps the search spaces at different levels comparable and gives synthesis tools a path toward handling larger systems.&lt;/p&gt;
&lt;p&gt;The work points toward synthesis workflows where modular system design is part of the synthesis process itself. It appeared at FMCAD 2023.&lt;/p&gt;</description></item><item><title>Synthesizing Specifications</title><link>https://ebmoon.github.io/publication/journal-article/</link><pubDate>Sun, 01 Oct 2023 00:00:00 +0000</pubDate><guid>https://ebmoon.github.io/publication/journal-article/</guid><description>&lt;p&gt;This paper studies how to synthesize useful formal specifications from program code. Instead of requiring a developer to manually write every property, the framework takes a query about a set of function definitions and a domain-specific language for expressing candidate properties.&lt;/p&gt;
&lt;p&gt;The synthesized results are best properties in the chosen language: each property is as precise as possible within the language, and the set is exhaustive with respect to the query. This makes the approach useful for extracting program facts that are both formal and tailored to the kind of property a user wants to see.&lt;/p&gt;
&lt;p&gt;The work is implemented in Spyro and demonstrates applications including program-specification mining, abstract-domain operations, and algebraic properties of program modules. It appeared at OOPSLA 2023.&lt;/p&gt;</description></item></channel></rss>