Role of Context in Program Search and Synthesis