Human-Centric Program Synthesis

Author Will Crichton

Thumbnail PDF


  • Filesize: 338 kB
  • 5 pages

Document Identifiers

Author Details

Will Crichton
  • Stanford University, Stanford, CA, USA


I would like to thank my advisor Pat Hanrahan for his everlasting support despite my constantly evolving research direction. And a big thanks to Brian Hempel, Georgia Gabriela Sampaio, and my anonymous reviewers for constructive comments that substantially improved the quality of this paper.

Cite AsGet BibTex

Will Crichton. Human-Centric Program Synthesis. In 10th Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU 2019). Open Access Series in Informatics (OASIcs), Volume 76, pp. 5:1-5:5, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2020)


Program synthesis techniques offer significant new capabilities in searching for programs that satisfy high-level specifications. While synthesis has been thoroughly explored for input/output pair specifications (programming-by-example), this paper asks: what does program synthesis look like beyond examples? What actual issues in day-to-day development would stand to benefit the most from synthesis? How can a human-centric perspective inform the exploration of alternative specification languages for synthesis? I sketch a human-centric vision for program synthesis where programmers explore and learn languages and APIs aided by a synthesis tool.

Subject Classification

ACM Subject Classification
  • Software and its engineering → Programming by example
  • Program synthesis
  • programming by example
  • PL/HCI


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Maaz Bin Safeer Ahmad and Alvin Cheung. Automatically leveraging mapreduce frameworks for data-intensive applications. In Proceedings of the 2018 International Conference on Management of Data, pages 1205-1220. ACM, 2018. Google Scholar
  2. Koen Claessen and John Hughes. Quickcheck: a lightweight tool for random testing of haskell programs. Acm sigplan notices, 46(4):53-64, 2011. Google Scholar
  3. Jake Edge. The pep 572 endgame., 2018. URL:
  4. Thomas RG Green. Cognitive dimensions of notations. People and computers V, pages 443-460, 1989. Google Scholar
  5. Shoaib Kamil, Alvin Cheung, Shachar Itzhaky, and Armando Solar-Lezama. Verified lifting of stencil computations. ACM SIGPLAN Notices, 51(6):711-726, 2016. Google Scholar
  6. Raffi Khatchadourian and Hidehiko Masuhara. Automated refactoring of legacy java software to default methods. In Proceedings of the 39th International Conference on Software Engineering, pages 82-93. IEEE Press, 2017. Google Scholar
  7. Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, and Syed Ahmed. Safe automated refactoring for intelligent parallelization of java 8 streams. In Proceedings of the 41st International Conference on Software Engineering, pages 619-630. IEEE Press, 2019. Google Scholar
  8. Tessa Lau. Why programming-by-demonstration systems fail: Lessons learned for usable ai. AI Magazine, 30(4):65-65, 2009. Google Scholar
  9. Roberto Minelli, Andrea Mocci, and Michele Lanza. I know what you did last summer: an investigation of how developers spend their time. In Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension, pages 25-35. IEEE Press, 2015. Google Scholar
  10. Matt Pharr. The story of ispc., 2018. URL:
  11. Oleksandr Polozov and Sumit Gulwani. Flashmeta: a framework for inductive program synthesis. In ACM SIGPLAN Notices, pages 107-126. ACM, 2015. URL:
  12. Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand, and Saman Amarasinghe. Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2013, pages 519-530. ACM, 2013. URL:
  13. Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Sanjit Seshia, and Vijay Saraswat. Combinatorial sketching for finite programs. ACM Sigplan Notices, 41(11):404-415, 2006. Google Scholar
  14. Yuepeng Wang, James Dong, Rushi Shah, and Isil Dillig. Synthesizing database programs for schema refactoring. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 286-300. ACM, 2019. Google Scholar
  15. Xin Xia, Lingfeng Bao, David Lo, Zhenchang Xing, Ahmed E Hassan, and Shanping Li. Measuring program comprehension: A large-scale field study with professionals. IEEE Transactions on Software Engineering, 44(10):951-976, 2017. Google Scholar
  16. Matei Zaharia, Mosharaf Chowdhury, Michael J Franklin, Scott Shenker, and Ion Stoica. Spark: Cluster computing with working sets. HotCloud, 10(10-10):95, 2010. Google Scholar
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail