Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1993498.1993536acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Spreadsheet table transformations from examples

Published: 04 June 2011 Publication History

Abstract

Every 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 user needs to transform a table of data, and provides to the user a program that implements the transformation described by the example. In particular, we present a language of programs TableProg that can describe transformations that real users require.We then present an algorithm ProgFromEx that takes an example input and output table, and infers a program in TableProg that implements the transformation described by the example. When the program is applied to the example input, it reproduces the example output. When the program is applied to another, potentially larger, table with a 'similar' layout as the example input table, then the program produces a corresponding table with a layout that is similar to the example output table. A user can apply ProgFromEx interactively, providing multiple small examples to obtain a program that implements the transformation that the user desires. Moreover, ProgFromEx can help identify 'noisy' examples that contain errors.
To evaluate the practicality of TableProg and ProgFromEx, we implemented ProgFromEx as a module for the Microsoft Excel spreadsheet program. We applied the module to automatically implement over 50 table transformations specified by endusers through examples on online Excel help forums. In seconds, ProgFromEx found programs that satisfied the examples and could be applied to larger input tables. This experience demonstrates that TableProg and ProgFromEx can significantly automate the tasks over tabular data that users need to perform.

References

[1]
R. Abraham and M. Erwig. Header and unit inference for spreadsheets through spatial analyses. In phProceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing (VLHCC), pages 165--172, 2004.
[2]
D. M. Barbosa, J. Cretin, N. Foster, M. Greenberg, and B. C. Pierce. Matching lenses: alignment and view update. In ICFP '10, 2010.
[3]
A. Cypher, editor. Watch What I Do -- Programming by Demonstration. MIT Press, Cambridge, MA, USA, 1993. Full text available at web.media.mit.edu/ lieber/PBE/.
[4]
A. Das Sarma, A. Parameswaran, H. Garcia-Molina, and J. Widom. Synthesizing view definitions from data. In ICDT '10, 2010.
[5]
Excel. Microsoft Excel, 2010. URL http://office.microsoft.com/en-us/excel.
[6]
Excel Help Forums. Excel help forum threads, 2010. URL http://cs.wisc.edu/~wrharris/pldi2011/tests.html.
[7]
K. Fisher, D. Walker, K. Q. Zhu, and P. White. From dirt to shovels: fully automatic tool generation from ad hoc data. In POPL '08, 2008.
[8]
S. Gulwani. Dimensions in program synthesis (invited talk paper). In ACM Symposium on PPDP, 2010.
[9]
S. Gulwani. Automating string processing in spreadsheets using input-output examples. In POPL, pages 317--330, 2011.
[10]
S. Gulwani, S. K. Jha, A. Tiwari, and R. Venkatesan. Synthesis of loop-free programs. In PLDI, 2011.
[11]
W. R. Harris and S. Gulwani. Table Transformations from Examples. Technical Report MSR-TR-2011-34, Microsoft Research, Redmond, March 2011.
[12]
S. Itzhaky, S. Gulwani, N. Immerman, and M. Sagiv. A simple inductive synthesis methodology and its applications. In OOPSLA, pages 36--46, 2010.
[13]
S. Jha, S. Gulwani, S. A. Seshia, and A. Tiwari. Oracle-guided component-based program synthesis. In ICSE '10, 2010.
[14]
S. Kandel, A. Paepcke, J. Hellerstein, and J. Heer. Wrangler: Interactive visual specification of data transformation scripts. In ACM Human Factors in Computing Systems (CHI), 2011.
[15]
T. Lau, S. A. Wolfman, P. Domingos, and D. S. Weld. Programming by demonstration using version space algebra. Mach. Learn., 53 (1--2): 111--156, 2003. ISSN 0885-6125.
[16]
T. A. Lau, P. Domingos, and D. S. Weld. Version space algebra and its application to programming by demonstration. In ICML '00, 2000.
[17]
H. Lieberman, editor. Your wish is my command: programming by example. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2001. ISBN 1-55860-688-2.
[18]
R. Nix. Editing by example. In POPL '84, 1984.
[19]
OpenOffice. Openoffice.org, 2010. URL http://www.openoffice.org/.
[20]
SKETCH. Sketch, 2010. URL https://bitbucket.org/gatoatigrado/sketch-frontend/ wiki/Home.
[21]
A. Solar-Lezama, G. Arnold, L. Tancau, R. Bodik, V. Saraswat, and S. Seshia. Sketching stencils. In PLDI '07, 2007.
[22]
S. Srivastava, S. Gulwani, and J. S. Foster. From program verification to program synthesis. In POPL, pages 313--326, 2010.
[23]
S. Srivastava, S. Gulwani, S. Chaudhuri, and J. Foster. Path-based inductive synthesis for program inversion. In PLDI, 2011.
[24]
A. Taly, S. Gulwani, and A. Tiwari. Synthesizing switching logic using constraint solving. In VMCAI, pages 305--319, 2009.
[25]
Q. T. Tran, C.-Y. Chan, and S. Parthasarathy. Query by output. In SIGMOD '09, 2009.
[26]
I. H. Witten and D. Mo. TELS: learning text editing tasks from examples, pages 183--203. MIT Press, 1993.

Cited By

View all
  • (2023)Explaining Dataset Changes for Semantic Data Versioning with Explain-Da-VProceedings of the VLDB Endowment10.14778/3583140.358316916:6(1587-1600)Online publication date: 20-Apr-2023
  • (2023)Improve Software Development: An Overview of Program SynthesisProceedings of the 2023 5th International Conference on Software Engineering and Development10.1145/3637792.3637793(1-7)Online publication date: 20-Oct-2023
  • (2023)Programming by Example Made EasyACM Transactions on Software Engineering and Methodology10.1145/360718533:1(1-36)Online publication date: 7-Jul-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2011
668 pages
ISBN:9781450306638
DOI:10.1145/1993498
  • General Chair:
  • Mary Hall,
  • Program Chair:
  • David Padua
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 6
    PLDI '11
    June 2011
    652 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1993316
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 June 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. end-user programming
  2. program synthesis
  3. programming by example
  4. spreadsheet programming
  5. table manipulation
  6. user intent

Qualifiers

  • Research-article

Conference

PLDI '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)57
  • Downloads (Last 6 weeks)10
Reflects downloads up to 18 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Explaining Dataset Changes for Semantic Data Versioning with Explain-Da-VProceedings of the VLDB Endowment10.14778/3583140.358316916:6(1587-1600)Online publication date: 20-Apr-2023
  • (2023)Improve Software Development: An Overview of Program SynthesisProceedings of the 2023 5th International Conference on Software Engineering and Development10.1145/3637792.3637793(1-7)Online publication date: 20-Oct-2023
  • (2023)Programming by Example Made EasyACM Transactions on Software Engineering and Methodology10.1145/360718533:1(1-36)Online publication date: 7-Jul-2023
  • (2022)An Instance-Based Data Transformation MethodHans Journal of Data Mining10.12677/HJDM.2022.12302412:03(235-245)Online publication date: 2022
  • (2022)Rigel: Transforming Tabular Data by Declarative MappingIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2022.3209385(1-11)Online publication date: 2022
  • (2022)HiTailor: Interactive Transformation and Visualization for Hierarchical Tabular DataIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2022.3209354(1-10)Online publication date: 2022
  • (2022)Phrase2Set: Phrase-to-Set Machine Translation and Its Software Engineering Applications2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00068(502-513)Online publication date: Mar-2022
  • (2021)Auto-pipelineProceedings of the VLDB Endowment10.14778/3476249.347630314:11(2563-2575)Online publication date: 27-Oct-2021
  • (2021)A Survey on Data Collection for Machine Learning: A Big Data - AI Integration PerspectiveIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2019.294616233:4(1328-1347)Online publication date: 1-Apr-2021
  • (2021)TransRegexProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00111(1210-1222)Online publication date: 22-May-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media