Reference. Neural Guided Constraint Logic Programming for Program Synthesis
Synthesizing programs using example input/outputs is a classic problem in artificial intelligence. We present a method for solving Programming By Example (PBE) problems by using a neural model to guide the search of a constraint logic programming system called miniKanren. Crucially, the neural model uses miniKanren’s internal representation as input; miniKanren represents a PBE problem as recursive constraints imposed by the provided examples. We explore Recurrent Neural Network and Graph Neural Network models. We contribute a modified miniKanren, drivable by an external agent, available at https://github.com/xuexue/neuralkanren. We show that our neural-guided approach using constraints can synthesize programs faster in many cases, and importantly, can generalize to larger problems.
Cite
Cites 31 works (0 here)
External (31)
- Towards Synthesizing Complex Programs From Input-Output Examples (2018)
- Learning a SAT Solver from Single-Bit Supervision (2018)
- Tree-to-tree Neural Networks for Program Translation (2018)
- Neural-Guided Deductive Search for Real-Time Program Synthesis from Examples (2018)
- Learning to Represent Programs with Graphs (2018)
- A unified approach to solving seven programming problems (functional pearl) (2017)
- End-to-End Differentiable Proving (2017)
- Deep API Programmer: Learning to Program with APIs (2017)
- RobustFill: Neural Program Learning under Noisy I/O (2017)
- Neuro-Symbolic Program Synthesis (2017)
- Sampling for Bayesian Program Learning (2016)
- DeepCoder: Learning to Write Programs (2016)
- TerpreT: A Probabilistic Programming Language for Program Induction (2016)
- Neural Programmer: Inducing Latent Programs with Gradient Descent (2016)
- Neural Programmer-Interpreters (2016)
- Gated Graph Sequence Neural Networks (2016)
- Prioritized Experience Replay (2016)
- Type-and-example-directed program synthesis (2015)
- Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks (2015)
- Synthesizing data structure transformations from input-output examples (2015)
- Neural Turing Machines (2014)
- Recursive Program Synthesis (2013)
- µKanren: A minimal functional core for relational programming (2013)
- miniKanren, live and untagged: Quine generation via relational interpreters (programming pearl) (2012)
- Lecture 6.5—RmsProp: Divide the gradient by a running average of its recent magnitude (2012)
- Automating string processing in spreadsheets using input-output examples (2011)
- The Graph Neural Network Model (2009)
- From variadic functions to variadic relations (2006)
- Long Short-Term Memory (1997)
- The Inference of Regular LISP Programs from Examples (1978)
- A Methodology for LISP Program Construction from Examples (1977)