abstract = "Millions of computer end users need to perform tasks
over large spreadsheet data, yet lack the programming
knowledge to do such tasks automatically. We present a
programming by example methodology that allows end
users to automate such repetitive tasks. Our
methodology involves designing a domain-specific
language and developing a synthesis algorithm that can
learn programs in that language from user-provided
examples. We present instantiations of this methodology
for particular domains of tasks: (a) syntactic
transformations of strings using restricted forms of
regular expressions, conditionals, and loops, (b)
semantic transformations of strings involving lookup in
relational tables, and (c) layout transformations on
spreadsheet tables. We have implemented this technology
as an add-in for the Microsoft Excel Spreadsheet system
and have evaluated it successfully over several
benchmarks picked from various Excel help forums.",