Carnegie Mellon University
lubin-plateau-23.pdf (111.35 kB)

Searching for Incidental Specifications

Download (111.35 kB)
conference contribution
posted on 2023-03-30, 16:41 authored by Jeremy Ferguson, Kevin Ye, Jacob Yim, Justin Lubin

Jeremy Ferguson, Kevin Ye, and Jacob Yim contributed equally to this paper.

Program synthesizers—tools that automatically generate code based on a user-provided specification—aim to lighten the burden of programming by ideally swapping the cost of manually performing a task or writing code for a task with the cost of writing a specification for that task. A concern of fundamental importance to the usability of these synthesizers is therefore to ensure that the specification cost is less than the manual cost. In this short paper, we discuss methods from human-computer interaction, techniques from software engineering and data mining, and theories from cognitive science that could directly help answer the question of what tasks are amenable to having specifications derived from users’ existing behaviors and processes rather than having users go out of their way to provide something new to the synthesizer—thereby ensuring the cost of specification is appropriately lower. We hope that this discussion is useful for synthesis designers and sparks interest in further investigation into how we can derive specifications from users’ existing behaviors and processes.


This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. 1752814 and is supported in part by NSF Grant FW-HTF 2129008 as well as by gifts from Google and the Chan Zuckerberg Biohub.




Usage metrics



    Ref. manager