paper-with-me

홈 › Papers

Latent Execution for Neural Program Synthesis Beyond Domain-Specific Languages

2021-05-21 · NeurIPS 2021 12 · Xinyun Chen, Dawn Song, Yuandong Tian

Program synthesis from input-output (IO) examples has been a long-standing challenge. While recent works demonstrated limited success on domain-specific languages (DSL), it remains highly challenging to apply them to real-world programming languages, such as C. Due to complicated syntax and token variation, there are three major challenges: (1) unlike many DSLs, programs in languages like C need to compile first and are not executed via interpreters; (2) the program search space grows exponentially when the syntax and semantics of the programming language become more complex; and (3) collecting a large-scale dataset of real-world programs is non-trivial. As a first step to address these challenges, we propose LaSynth and show its efficacy in a restricted-C domain (i.e., C code with tens of tokens, with sequential, branching, loop and simple arithmetic operations but no library call). More specifically, LaSynth learns the latent representation to approximate the execution of partially generated programs, even if they are incomplete in syntax (addressing (1)). The learned execution significantly improves the performance of next token prediction over existing approaches, facilitating search (addressing (2)). Finally, once trained with randomly generated ground-truth programs and their IO pairs, LaSynth can synthesize more concise programs that resemble human-written code. Furthermore, retraining our model with these synthesized programs yields better performance with fewer samples for both Karel and C program synthesis, indicating the promise of leveraging the learned program synthesizer to improve the dataset quality for input-output program synthesis (addressing (3)). When evaluating on whether the program execution outputs match the IO pairs, LaSynth achieves 55.2% accuracy on generating simple C code with tens of tokens including loops and branches, outperforming existing approaches without executors by around 20%.

📄 PDF Abstract BibTeX

Code (0)

등록된 구현이 없습니다.

Tasks

C++ codeProgram Synthesis

Similar Papers 제목 키워드 기반

Latent Execution for Neural Program Synthesis

2021-06-29 · NeurIPS 2021 12 · Xinyun Chen, Dawn Song, Yuandong Tian

Program synthesis from input-output (IO) examples has been a long-standing challenge. While recent works demonstrated limited success on domain-specific languages (DSL), it remains highly challenging to apply them to rea…

C++ codeProgram Synthesis

AbstractBeam: Enhancing Bottom-Up Program Synthesis using Library Learning

2024-05-27 · Janis Zenkner, Lukas Dierkes, Tobias Sesterhenn, Chrisitan Bartelt

LambdaBeam is a state-of-the-art, execution-guided algorithm for program synthesis that utilizes higher-order functions, lambda functions, and iterative loops within a Domain-Specific Language (DSL). LambdaBeam generates…

Program Synthesis

Improving Neural Program Synthesis with Inferred Execution Traces

2018-12-01 · NeurIPS 2018 12 · Richard Shin, Illia Polosukhin, Dawn Song

The task of program synthesis, or automatically generating programs that are consistent with a provided specification, remains a challenging task in artificial intelligence. As in other fields of AI, deep learning-based …

Program Synthesis

Out-of-Distribution Generalization in the ARC-AGI Domain: Comparing Execution-Guided Neural Program Synthesis and Test-Time Fine-Tuning

2025-07-17 · Simon Ouellette arxiv

We run a controlled compositional generalization experiment in the ARC-AGI domain: an open-world problem domain in which the ability to generalize out-of-distribution is, by design, an essential characteristic for succes…

Program Synthesis

Latent Programmer: Discrete Latent Codes for Program Synthesis

2020-12-01 · Joey Hong, David Dohan, Rishabh Singh, Charles Sutton 외

In many sequence learning tasks, such as program synthesis and document summarization, a key problem is searching over a large space of possible output sequences. We propose to learn representations of the outputs that a…

Document SummarizationProgram SynthesisSelf-Supervised Learning