Programming by Examples (PBE) is a technique in which a user specifies the
desired behavior of a program as a set of input-output examples, and the
synthesizer automatically generates a program that is consistent with the
input-output examples. PBE is an especially useful technique in the domain of
data wrangling and providing input-output examples for data wrangling tasks is
significantly easier than manually writing the programs.
Research in this area has mainly been focused on solving the main PBE problem
of finding a single program consistent with the input-output examples.
Here, we highlight a different aspect of PBE: the "intent-disambiguation
problem", i.e., the problem of finding which of the many programs consistent
with the examples actually, correspond to the user intent. We discuss some recent
approaches to this problem, and the practicalities of using PBE in an industrial
Gustavo is a Researcher in the PROSE team. Previously, he was an Assistant Professor
in the Department of Computing and Systems at the Federal University of Campina
Grande (UFCG), Brazil, and worked as a postdoc at UC Berkeley with Bjoern Hartmann.
He completed his PhD at UFCG under supervision of Rohit Gheyi in 2014. Gustavo’s research
interests include program synthesis, HCI, and software engineering. In the PROSE Team, his
currently focused on developing techniques to perform tree transformations by example.
Arjun is interested in the use of Formal Methods and Program Synthesis techniques to aid
programmers in designing reliable and correct systems. Arjun graduated with a PhD from
IST Austria in 2014, advised by Thomas A. Henzinger. His dissertation on the use of quantitative
techniques in formal verification and synthesis was awarded the ACM SIGBED Paul Caspi
Dissertation Award in recognition of an outstanding doctoral dissertation that significantly
advances the state of the art in the science of embedded systems. During his stint as a
Post-doctoral Researcher in the group of Rajeev Alur at the University of Pennsylvania,
he developed novel divide-and-conquer program synthesis strategies. Syntax-guided
Synthesis SyGuS solvers based on these strategies have won the SyGuS competition for
two years running.