This repo contains a curated list of papers related to program synthesis, program induction, program execution, program and code repair, and programmatic reinforcement learning. This list is maintained by Shao-Hua Sun.
You are more than welcome to contribute by suggesting changes to make the list more comprehensive or correcting errors. Please simply create a pull request or contact me via email. If you find this repo useful for your research, please consider citing this list.
- Program Synthesis
- Program Induction
- Program Execution
- Program and Code Repair
- Programmatic Reinforcement Learning
The goal of program synthesis is to construct a human-readable program that satisfies task specifications represented as input/output pairs, demonstrations, natural language instructions, etc. Recent works also explore representing images and 3D shapes using programs, allowing applications such as editing, scene understanding, analogy-making, reverse engineering, etc.
- 41 papers
Paper Title | Conference | Year | Link |
---|---|---|---|
Latent Attention For If-Then Program Synthesis | NIPS | 2016 | link |
Neural Scene De-rendering | CVPR | 2017 | link |
Learning Shape Abstractions by Assembling Volumetric Primitives | CVPR | 2017 | link |
DeepCoder: Learning to Write Programs | ICLR | 2017 | link |
Neuro-Symbolic Program Synthesis | ICLR | 2017 | link |
RobustFill: Neural Program Learning under Noisy I/O | ICML | 2017 | link |
Differentiable Programs with Neural Libraries | ICML | 2017 | link |
pix2code: Generating Code from a Graphical User Interface Screenshot | arXiv | 2017 | link |
Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning | arXiv | 2017 | link |
CSGNet: Neural Shape Parser for Constructive Solid Geometry | CVPR | 2018 | link |
NL2Bash: A Corpus and Semantic Parser for Natural Language Interface to the Linux Operating System | ELRA | 2018 | link |
Leveraging Grammar and Reinforcement Learning for Neural Program Synthesis | ICLR | 2018 | link |
Towards Synthesizing Complex Programs from Input-Output Examples | ICLR | 2018 | link |
Neural Program Synthesis from Diverse Demonstration Videos | ICML | 2018 | link |
Improving Neural Program Synthesis with Inferred Execution Traces | NeurIPS | 2018 | link |
Automatic Program Synthesis of Long Programs with a Learned Garbage Collector | NeurIPS | 2018 | link |
Neural Program Synthesis with Priority Queue Training | arXiv | 2018 | link |
Recent Advances in Neural Program Synthesis | arXiv | 2018 | link |
Watch, Reason and Code- Learning to Represent Videos Using Program | ACM Multimedia | 2019 | link |
Program-Guided Image Manipulators | ICCV | 2019 | link |
Execution-Guided Neural Program Synthesis | ICLR | 2019 | link |
Learning to Describe Scenes with Programs | ICLR | 2019 | link |
Learning to Infer and Execute 3D Shape Programs | ICLR | 2019 | link |
Synthetic Datasets for Neural Program Synthesis | ICLR | 2019 | link |
Learning to Infer Program Sketches | ICML | 2019 | link |
Write, Execute, Assess Program Synthesis with a REPL | NeurIPS | 2019 | link |
Ain’t Nobody Got Time For Coding: Structure-Aware Program Synthesis From Natural Language | arXiv | 2019 | link |
Learning Compositional Rules via Neural Program Synthesis | NeurIPS | 2020 | link |
Synthesize, Execute and Debug: Learning to Repair for Neural Program Synthesis | NeurIPS | 2020 | link |
PLANS: Neuro-Symbolic Program Learning from Videos | NeurIPS | 2020 | link |
Neural Program Synthesis with a Differentiable Fixer | arXiv | 2020 | link |
Learning to Infer Shape Programs Using Self Training | arXiv | 2020 | link |
Representing Partial Programs with Blended Abstract Semantics | ICLR | 2021 | link |
SpreadsheetCoder: Formula Prediction from Semi-structured Context | ICML | 2021 | link |
Latent Programmer: Discrete Latent Codes for Program Synthesis | ICML | 2021 | link |
Leveraging Language to Learn Program Abstractions and Search Heuristics | ICML | 2021 | link |
A large-scale benchmark for few-shot program induction and synthesis | ICML | 2021 | link |
Latent Execution for Neural Program Synthesis Beyond Domain-Specific Languages | arXiv | 2021 | link |
Learning to Combine Per-Example Solutions for Neural Program Synthesis | arXiv | 2021 | link |
Evaluating Large Language Models Trained on Code | arXiv | 2021 | link |
Program Synthesis with Large Language Models | arXiv | 2021 | link |
Unlike program synthesis works that are designed to explicitly synthesize programs, program induction methods aim to implicitly induce the underlying programs to mimic the desired behaviors demonstrated in task specifications (e.g. execution traces) to solve algorithmic tasks such as digit addition and string transformations and achieve better generalization.
- 21 papers
Paper Title | Conference | Year | Link |
---|---|---|---|
Neural Turing Machines | arXiv | 2014 | link |
Learning Simple Algorithms from Examples | arXiv | 2015 | link |
Reinforcement Learning Neural Turing Machines-Revised | arXiv | 2015 | link |
Neural GPUs Learn Algorithms | arXiv | 2015 | link |
Neural Random-Access Machines | arXiv | 2015 | link |
Neural Programmer-Interpreters | ICLR | 2016 | link |
Extensions and Limitations of the Neural GPU | arXiv | 2016 | link |
Neural Program Lattices | ICLR | 2017 | link |
Making Neural Programming Architectures Generalize via Recursion | ICLR | 2017 | link |
Neural Program Meta-Induction | NIPS | 2017 | link |
Using Program Induction to Interpret Transition System Dynamics | arXiv | 2017 | link |
Improving the Universality and Learnability of Neural Programmer-Interpreters with Combinator Abstraction | ICLR | 2018 | link |
Neural Task Programming: Learning to Generalize Across Hierarchical Tasks | ICRA | 2018 | link |
Memory Augmented Policy Optimization for Program Synthesis with Generalization | NeurIPS | 2018 | link |
Neural Task Graphs: Generalizing to Unseen Tasks from a Single Video Demonstration | CVPR | 2019 | link |
Learning Compositional Neural Programs with Recursive Tree Search and Planning | NeurIPS | 2019 | link |
Learning Algorithmic Solutions to Symbolic Planning Tasks with a Neural Computer Architecture | arXiv | 2019 | link |
Neural Execution Engines- Learning to Execute Subroutines | NeurIPS | 2020 | link |
DreamCoder: Growing generalizable, interpretable knowledge with wake-sleep Bayesian program learning | arXiv | 2020 | link |
Strong Generalization and Efficiency in Neural Programs | arXiv | 2020 | link |
A large-scale benchmark for few-shot program induction and synthesis | ICML | 2021 | link |
Program execution works explore domains such as utilizing programs as instructions to guide reinforcement learning agents and improving program synthesis performance by executing partially generated programs.
- 11 papers
Paper Title | Conference | Year | Link |
---|---|---|---|
Learning to Execute | arXiv | 2014 | link |
Modular Multitask Reinforcement Learning with Policy Sketches | ICML | 2017 | link |
Zero-Shot Task Generalization with Multi-Task Deep Reinforcement Learning | ICML | 2017 | link |
Programmable Agents | NIPS | 2017 | link |
A Composable Specification Language for Reinforcement Learning Tasks | NeurIPS | 2019 | link |
Program Guided Agent | ICLR | 2020 | link |
Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networks | NeurIPS | 2020 | link |
Reinforcement Learning of Implicit and Explicit Control Flow in Instructions | ICML | 2021 | link |
ProTo: Program-Guided Transformer for Program-Guided Tasks | NeurIPS | 2021 | link |
Latent Execution for Neural Program Synthesis Beyond Domain-Specific Languages | arXiv | 2021 | link |
Program Synthesis Guided Reinforcement Learning | arXiv | 2021 | link |
Program and code repair methods aim to automatically identify bugs in code and potentially propose solutions to fix them to alleviate the burden of programmers.
- 11 papers
Paper Title | Conference | Year | Link |
---|---|---|---|
SemFix: Program Repair via Semantic Analysis | ICSE | 2013 | link |
DynaMoth: Dynamic Code Synthesis for Automatic Program Repair | AST | 2016 | link |
Leveraging syntax-related code for automated program repair | ASE | 2017 | link |
Contract-Based Program Repair without the Contracts | ASE | 2017 | link |
Shaping program repair space with existing patches and similar code | ACM SIGSOFT | 2018 | link |
LSRepair: Live Search of Fix Ingredients for Automated Program Repair | APSEC | 2018 | link |
Automated Program Repair | CACM | 2019 | link |
Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities | SANER | 2019 | link |
FixMiner: Mining Relevant Fix Patterns for Automated Program Repair | ESEJ | 2020 | link |
Graph-based, Self-Supervised Program Repair from Diagnostic Feedback | ICML | 2020 | link |
DLFix: Context-based Code Transformation Learning for Automated Program Repair | ICSE | 2020 | link |
To solve tasks described by MDPs, the goal of programmatic reinforcement learning is to learn programmatic policies that are more structured, verifiable, interpretable, and generalizable. The following papers represent programmatic policies using representations such as decision trees, finite state machines, or programs structured in domain-specific languages.
- 10 papers
Paper Title | Conference | Year | Link |
---|---|---|---|
Programmable Reinforcement Learning Agents | NIPS | 2000 | link |
Programmatically Interpretable Reinforcement Learning | ICML | 2018 | link |
Verifiable Reinforcement Learning via Policy Extraction | NeurIPS | 2018 | link |
Towards Mixed Optimization for Reinforcement Learning with Program Synthesis | arXiv | 2018 | link |
Synthesizing Programmatic Policies that Inductively Generalize | ICLR | 2019 | link |
Learning Finite State Representations of Recurrent Policy Networks | ICLR | 2019 | link |
Neural logic reinforcement learning | ICML | 2019 | link |
Imitation-Projected Programmatic Reinforcement Learning | NeurIPS | 2019 | link |
Discovering symbolic policies with deep reinforcement learning | ICML | 2021 | link |
Learning to Synthesize Programs as Interpretable and Generalizable Policies | NeurIPS | 2021 | link |
@misc{sun2021programpaperlist,
author = {Sun, Shao-Hua},
title = {Program paper list: program synthesis, program induction, program execution, program and code repair, and programmatic reinforcement learning},
year = {2021},
journal = {GitHub repository},
url = {https://github.com/shaohua0116/awesome-program},
}