Synthesis

Program synthesis is the science and art of generating programs automatically, from specifications such as from examples.

Approaches

The broad approaches to program synthesis include type-driven approaches, (inductive) logic programming, and machine-learning approaches such as neural-guided search.​​​ Here is one paper from each approach, as a non-exhaustive survey.

Type-driven

Peter-Michael Osera and Steve Zdancewic. 11/2015. “Type-and-example-directed program synthesis.” In PLDI. PDF

Logic-based

Richard Evans, Jose Hernandez-Orallo, Johannes Welbl, Pushmeet Kohli, and Marek Sergot. 7/14/2020. “Making sense of sensory input.” arXiv:1910.02227. PDF

Machine-Learning

Neural-Guided Search

Ashwin Kalyan, Abhishek Mohta, Alex Polozov, Dhruv Batra, Prateek Jain, and Sumit Gulwani. 1/2018. “Neural-Guided Deductive Search for Real-Time Program Synthesis from Examples.” ICLR. PDF

Differential programming

Matko Bosnjak, Tim Rocktäschel, Jason Naradowsky, and Sebastian Riedel. 2017. “Programming with a Differentiable Forth Interpreter.” ICML. PDF

See also: meeting, Synthesis