Exploring Synergies Between Program Synthesis And Machine Learning