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.
- Cypher, A., ed. Watch What I Do: Programming by Demonstration, MIT Press, 1993. Google ScholarDigital Library
- Das Sarma, A., Parameswaran, A., Garcia-Molina, H., Widom, J. Synthesizing view definitions from data. In ICDT (2010). Google ScholarDigital Library
- Fisher, K., Walker, D. The PADS project: an overview. In ICDT (2011). Google ScholarDigital Library
- Gualtieri, M. Deputize end-user developers to deliver business agility and reduce costs. In Forrester Report for Application Development and Program Management Professionals (Apr. 2009).Google Scholar
- Gulwani, S. Dimensions in program synthesis. In PPDP (2010). Google ScholarDigital Library
- Gulwani, S. Automating string processing in spreadsheets using input-output examples. In POPL (2011). Google ScholarDigital Library
- Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R. Synthesis of loop-free programs. In PLDI (2011). Google ScholarDigital Library
- Harris, W.R., Gulwani, S. Spreadsheet table transformations from examples. In PLDI (2011). Google ScholarDigital Library
- Itzhaky, S., Gulwani, S., Immerman, N., Sagiv, M. A simple inductive synthesis methodology and its applications. In OOPSLA (2010). Google ScholarDigital Library
- Jha, S., Gulwani, S., Seshia, S., Tiwari, A. Oracle-guided component-based program synthesis. In ICSE (2010). Google ScholarDigital Library
- Kandel, S., Paepcke, A., Hellerstein, J., Heer, J. Wrangler: Interactive visual specification of data transformation scripts. In CHI (2011). Google ScholarDigital Library
- Ko, A.J., Myers, B.A., Aung, H.H. Six learning barriers in end-user programming systems. In VL/HCC (2004). Google ScholarDigital Library
- Lau, T. Why P B D systems fail: lessons learned for usable AI. In CHI 2008 Workshop on Usable AI (2008).Google Scholar
- Lau, T., Wolfman, S., Domingos, P., Weld, D. Programming by demonstration using version space algebra. Mach. Learn. 53(1--2) (2003). Google ScholarDigital Library
- Lieberman, H. Your Wish is My Command: Programming by Example, Morgan Kaufmann, 2001.Google ScholarDigital Library
- Miller, R.C., Myers, B.A., Interactive simultaneous editing of multiple text regions. In USENIX Annual Technical Conference (2001). Google ScholarDigital Library
- Mitchell, T.M. Generalization as search. Artif. Intell. 18, 2 (1982).Google ScholarCross Ref
- Singh, R., Gulwani, S. Learning semantic string transformations from examples. PVLDB 5 (2012), in press. Google ScholarDigital Library
- Srivastava, S., Gulwani, S., Chaudhuri, S., Foster, J.S. Path-based inductive synthesis for program inversion. In PLDI (2011). Google ScholarDigital Library
- Srivastava, S., Gulwani, S., Foster, J. From program verification to program synthesis. In POPL (2010). Google ScholarDigital Library
- Taly, A., Gulwani, S., Tiwari, A. Synthesizing switching logic using constraint solving. In VMCAI (2009). Google ScholarDigital Library
- Tran, Q.T., Chan, C.Y., Parthasarathy, S. Query by output. In SIGMOD (2009). Google ScholarDigital Library
- Walkenbach, J. Excel 2010 Formulas, John Wiley and Sons, 2010. Google ScholarDigital Library
Recommendations
Spreadsheet table transformations from examples
PLDI '11Every day, millions of computer end-users need to perform tasks over large, tabular data, yet lack the programming knowledge to do such tasks automatically. In this work, we present an automatic technique that takes from a user an example of how the ...
Spreadsheet table transformations from examples
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and ImplementationEvery day, millions of computer end-users need to perform tasks over large, tabular data, yet lack the programming knowledge to do such tasks automatically. In this work, we present an automatic technique that takes from a user an example of how the ...
Comments