Yad Konrad

Yad

~/

An Overview Of Learning Programs, Past, Present and Future

Draft Layout

Abstract:

This is a literature review to discuss the problem of Program Synthesis. We look at the past work on the topic and the recent advances of deep learning applied to the problem. Essentially, the task of Program synthesis entails automatically finding a program in the underlying programming language specified to satisfy the user’s intent. The user’s requested intent are often times expressed in the form of some specification.

The reason we stick with the term learning programs comes from the variety of approaches from theorem proving to program induction and some other black-box approaches, which often times offer satisfactory programs as well.

Outline:

  • A little history on Program Synthesis
  • Introducing the problem’s primitive approaches to solution:
    • Second-Order Problem Reduction.
    • Enumerative Search
    • Constraint Solving
    • Stochastic Search
    • Programming by Examples
  • Each of the above sections will contain:
    • Reasoning for the approach that is used.
    • State of the art results
    • Limitations of the technique
  • Next Steps
  • Appendix A:
    • Program Examples
    • Extended Visualizations