skip to main content
article
Public Access

Synthesizing transformations on hierarchically structured data

Published:02 June 2016Publication History
Skip Abstract Section

Abstract

This paper presents a new approach for synthesizing transformations on tree-structured data, such as Unix directories and XML documents. We consider a general abstraction for such data, called hierarchical data trees (HDTs) and present a novel example-driven synthesis algorithm for HDT transformations. Our central insight is to reduce the problem of synthesizing tree transformers to the synthesis of list transformations that are applied to the paths of the tree. The synthesis problem over lists is solved using a new algorithm that combines SMT solving and decision tree learning. We have implemented our technique in a system called HADES and show that HADES can automatically synthesize a variety of interesting transformations collected from online forums.

References

  1. Automator. http://automator.us.Google ScholarGoogle Scholar
  2. A. Albarghouthi, S. Gulwani, and Z. Kincaid. Recursive program synthesis. In CAV, pages 934–950, 2013.Google ScholarGoogle Scholar
  3. D. W. Barowy, S. Gulwani, T. Hart, and B. G. Zorn. Flashrelate: extracting relational data from semi-structured spreadsheets using examples. In PLDI, pages 218–228, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. T. A. Beyene, S. Chaudhuri, C. Popeea, and A. Rybalchenko. A constraint-based approach to solving games on infinite graphs. In POPL, pages 221–234, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Y. Brun and M. D. Ernst. Finding latent code errors via machine learning over program executions. In ICSE, pages 480–490, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Carme, R. Gilleron, A. Lemay, and J. Niehren. Interactive learning of node selecting tree transducer. Machine Learning, 66(1):33–67, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. L. De Moura and N. Bjørner. Z3: An efficient smt solver. In Tools and Algorithms for the Construction and Analysis of Systems, pages 337–340. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. Drewes and J. Högberg. Learning a regular tree language from a teacher. In Developments in Language Theory, pages 279–291. Springer, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Eisner. Learning non-isomorphic tree mappings for machine translation. In Proceedings of Meeting on Association for Computational Linguistics, pages 205–208, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. J. K. Feser, S. Chaudhuri, and I. Dillig. Synthesizing data structure transformations from input-output examples. In PLDI, pages 229–239, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Gopinath, S. Khurshid, D. Saha, and S. Chandra. Dataguided repair of selection statements. In ICSE, pages 243– 253. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Gulwani. Automating string processing in spreadsheets using input-output examples. In POPL, pages 317–330. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Gulwani, M. Mayer, F. Niksic, and R. Piskac. Strisynth: synthesis for live programming. In Proceedings of the 37th International Conference on Software Engineering-Volume 2, pages 701–704. IEEE Press, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. W. R. Harris and S. Gulwani. Spreadsheet table transformations from examples. In PLDI, pages 317–328. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. E. Kitzelmann. Analytical inductive functional programming. In Logic-Based Program Synthesis and Transformation, pages 87–102. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. V. Kuncak, M. Mayer, R. Piskac, and P. Suter. Complete functional synthesis. In PLDI, pages 316–329, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. V. Le and S. Gulwani. Flashextract: A framework for data extraction by examples. In PLDI, page 55, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. P. Osera and S. Zdancewic. Type-and-example-directed program synthesis. In PLDI, pages 619–630, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Perelman, S. Gulwani, D. Grossman, and P. Provost. Testdriven synthesis. In PLDI, page 43, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. R. Quinlan. Induction of decision trees. Machine learning, 1(1):81–106, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. W. C. Rounds. Mappings and grammars on trees. Theory of Computing Systems, 4(3):257–287, 1970.Google ScholarGoogle Scholar
  22. S. Sankaranarayanan, S. Chaudhuri, F. Ivanˇci´c, and A. Gupta. Dynamic inference of likely data preconditions over predicates by tree learning. In Proceedings of the 2008 international symposium on Software testing and analysis, pages 295–306. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Singh and S. Gulwani. Synthesizing number transformations from input-output examples. In Computer Aided Verification, pages 634–651. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Solar-Lezama, L. Tancau, R. Bod´ık, S. A. Seshia, and V. A. Saraswat. Combinatorial sketching for finite programs. In ASPLOS, pages 404–415, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Srivastava, S. Gulwani, and J. S. Foster. Template-based program verification and program synthesis. STTT, 15(5-6): 497–518, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. S. Zhang and Y. Sun. Automatically synthesizing sql queries from input-output examples. In Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on, pages 224–234. IEEE, 2013.Google ScholarGoogle Scholar

Index Terms

  1. Synthesizing transformations on hierarchically structured data

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 51, Issue 6
        PLDI '16
        June 2016
        726 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2980983
        • Editor:
        • Andy Gill
        Issue’s Table of Contents
        • cover image ACM Conferences
          PLDI '16: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation
          June 2016
          726 pages
          ISBN:9781450342612
          DOI:10.1145/2908080
          • General Chair:
          • Chandra Krintz,
          • Program Chair:
          • Emery Berger

        Copyright © 2016 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 2 June 2016

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!