  In recent years, deep learning has made tremendous progress in a number of
fields that were previously out of reach for artificial intelligence. The
successes in these problems has led researchers to consider the possibilities
for intelligent systems to tackle a problem that humans have only recently
themselves considered: program synthesis. This challenge is unlike others such
as object recognition and speech translation, since its abstract nature and
demand for rigor make it difficult even for human minds to attempt. While it is
still far from being solved or even competitive with most existing methods,
neural program synthesis is a rapidly growing discipline which holds great
promise if completely realized. In this paper, we start with exploring the
problem statement and challenges of program synthesis. Then, we examine the
fascinating evolution of program induction models, along with how they have
succeeded, failed and been reimagined since. Finally, we conclude with a
contrastive look at program synthesis and future research recommendations for
the field.
