Mason: Type- and Name-Guided Program Synthesis

📅 2026-02-18
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses the challenge that implementing design patterns in object-oriented programs often introduces substantial boilerplate code, which obscures core application logic. To mitigate this, the authors propose a type- and name-guided program synthesis approach that automatically completes partial program fragments into full implementations conforming to canonical design patterns. The method integrates a grammar-constrained pattern language, type-directed constraint generation, name-based program transformations, and a non-local backtracking heuristic to navigate the synthesis space effectively. Experimental evaluation demonstrates that the approach successfully embeds multiple classic design patterns across several benchmarks, and its extensible architecture significantly enhances synthesis efficiency and scalability, particularly in scenarios with large candidate solution spaces.

Technology Category

Application Category

📝 Abstract
Object-oriented programs tend to be written using many common coding idioms, such as those captured by design patterns. While design patterns are useful, implementing them is often tedious and repetitive, requiring boilerplate code that distracts the programmer from more essential details. In this paper, we introduce Mason, a tool that synthesizes object-oriented programs from partial program pieces, and we apply it to automatically insert design patterns into programs. At the core of Mason is a novel technique we call type- and name-guided synthesis, in which an enumerative solver traverses a partial program to generate typing constraints; discharges constraints via program transformations guided by the names of constrained types and members; and backtracks when a constraint is violated or a candidate program fails unit tests. We also introduce two extensions to Mason: a non-local backtracking heuristic that uses execution traces, and a language of patterns that impose syntactic restrictions on missing names. We evaluate Mason on a suite of benchmarks to which Mason must add various well-known design patterns implemented as a library of program pieces. We find that Mason performs well when very few candidate programs satisfy its typing constraints and that our extensions can improve Mason's performance significantly when this is not the case. We believe that Mason takes an important step forward in synthesizing multi-class object-oriented programs using design patterns.
Problem

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

program synthesis
design patterns
object-oriented programming
boilerplate code
type-guided synthesis
Innovation

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

program synthesis
type-guided synthesis
name-guided synthesis
design patterns
object-oriented programming
🔎 Similar Papers
No similar papers found.
J
Jasper Geer
University of British Columbia
F
Fox Huston
Tufts University
Jeffrey S. Foster
Jeffrey S. Foster
Computer Science, Tufts University
Programming LanguagesSoftware EngineeringSecurity