TerpreT: A Probabilistic Programming Language for Program Induction
Not on the map. Why?
Abstract (arXiv)
We study machine learning formulations of inductive program synthesis; given input-output examples, we try to synthesize source code that maps inputs to corresponding outputs. Our aims are to develop new machine learning approaches based on neural networks and graphical models, and to understand the capabilities of machine learning techniques relative to traditional alternatives, such as those based on constraint solving from the programming languages community. Our key contribution is the proposal of TerpreT, a domain-specific language for expressing program synthesis problems. TerpreT is similar to a probabilistic programming language: a model is composed of a specification of a program representation (declarations of random variables) and an interpreter describing how programs map inputs to outputs (a model connecting unknowns to observations). The inference task is to observe a set of input-output examples and infer the underlying program. TerpreT has two main benefits. First, it enables rapid exploration of a range of domains, program representations, and interpreter models. Second, it separates the model specification from the inference algorithm, allowing like-to-like comparisons between different approaches to inference. From a single TerpreT specification we automatically perform inference using four different back-ends. These are based on gradient descent, linear program (LP) relaxations for graphical models, discrete satisfiability solving, and the Sketch program synthesis system. We illustrate the value of TerpreT by developing several interpreter models and performing an empirical comparison between alternative inference algorithms. Our key empirical finding is that constraint solvers dominate the gradient descent and LP-based formulations. We conclude with suggestions for the machine learning community to make progress on program synthesis.
Key facts. Cited by 12 papers in the map (data through 7 Oct 2026). First posted on arXiv 15 Aug 2016.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 5; 2022: 1; 2023: 2; 2024: 2; 2025: 1; 2026: 1.
12 papers.
- 2021Communicating Natural Programs to Humans and Machinescited by 35
- 2022From Perception to Programs: Regularize, Overparameterize, and Amortizecited by 13
- 2023Efficient Symbolic Policy Learning with Differentiable Symbolic Expressioncited by 9
- 2021Unsupervised Learning of Neurosymbolic Encoderscited by 8
- 2023Smoothing Methods for Automatic Differentiation Across Conditional Branchescited by 6
- 2024Uncertainty Quantification for Neurosymbolic Programs via Compositional Conformal Predictioncited by 4
- 2021BF++: a language for general-purpose program synthesiscited by 3
- 2024Algorithmic Language Models with Neurally Compiled Librariescited by 2
- 2025CTSketch: Compositional Tensor Sketching for Scalable Neurosymbolic Learningcited by 1
- 2021Understanding in Artificial Intelligencecited by 0
- 2021Geometry of Program Synthesiscited by 0
- 2026Differentiate the Evaluator, Not the Program: An Efficient Runtime Representation for Neuro-Symbolic Learningcited by 0
- 2026Differentiate the Evaluator, Not the Program: An Efficient Runtime Representation for Neuro-Symbolic Learning3 Jul 2026
- 2025CTSketch: Compositional Tensor Sketching for Scalable Neurosymbolic Learning31 Mar 2025
- 2024Algorithmic Language Models with Neurally Compiled Libraries6 Jul 2024
- 2024Uncertainty Quantification for Neurosymbolic Programs via Compositional Conformal Prediction24 May 2024
- 2023Efficient Symbolic Policy Learning with Differentiable Symbolic Expression2 Nov 2023
- 2023Smoothing Methods for Automatic Differentiation Across Conditional Branches5 Oct 2023
- 2022From Perception to Programs: Regularize, Overparameterize, and Amortize13 Jun 2022
- 2021Unsupervised Learning of Neurosymbolic Encoders28 Jul 2021
- 2021Communicating Natural Programs to Humans and Machines15 Jun 2021
- 2021Geometry of Program Synthesis30 Mar 2021
- 2021BF++: a language for general-purpose program synthesis23 Jan 2021
- 2021Understanding in Artificial Intelligence17 Jan 2021