RbSyn: Type- and Effect-Guided Program Synthesis
Sankha Narayan Guria, Jeffrey S. Foster, David Van Horn

TL;DR
RbSyn is a new synthesis tool for Ruby that efficiently generates effectful methods guided by types and effects, successfully handling side effects and passing test cases in under a minute for most benchmarks.
Contribution
Introduces RbSyn, a novel type- and effect-guided synthesis approach for effectful Ruby methods, formalized on a core language and scaled to real-world Ruby applications.
Findings
Successfully synthesizes correct solutions for all 19 benchmarks.
Most benchmarks are synthesized in under 9 seconds.
Type and effect guidance significantly improves synthesis performance.
Abstract
In recent years, researchers have explored component-based synthesis, which aims to automatically construct programs that operate by composing calls to existing APIs. However, prior work has not considered efficient synthesis of methods with side effects, e.g., web app methods that update a database. In this paper, we introduce RbSyn, a novel type- and effect-guided synthesis tool for Ruby. An RbSyn synthesis goal is specified as the type for the target method and a series of test cases it must pass. RbSyn works by recursively generating well-typed candidate method bodies whose write effects match the read effects of the test case assertions. After finding a set of candidates that separately satisfy each test, RbSyn synthesizes a solution that branches to execute the correct candidate code under the appropriate conditions. We formalize RbSyn on a core, object-oriented language…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
