Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2814228.2814235acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article
Open access

Toward tool support for interactive synthesis

Published: 21 October 2015 Publication History

Abstract

Syntax-guided synthesis searches for an implementation of a given specification by exploring large spaces of candidate programs. Sketches reduce these search spaces, making synthesis more tractable, by predefining the structure of the desired implementation. Typically, this structure is obtained through human insight---this paper introduces a method for interactive, tool-supported discovery of such structure. The key idea is to decompose the specification into subcomputations such that the decomposition dictates the sketch. We rely on a readily obtainable specification that is nothing more than a finite set of sample input-output pairs or execution traces of the desired program. We introduce two complementary decomposition operators and demonstrate them on case studies. We find that our interactive methodology to discover structure extends the reach of computer-aided programming to problems that cannot be solved with synthesis alone.

References

[1]
G. Alexe, S. Alexe, Y. Crama, S. Foldes, P. L. Hammer, and B. Simeone. Consensus algorithms for the generation of all maximal bicliques. Discrete Appl. Math., 145(1), 2004.
[2]
R. Alur, R. Bodik, G. Juniwal, M. M. K. Martin, M. Raghothaman, S. A. Seshia, R. Singh, A. Solar-Lezama, E. Torlak, and A. Udupa. Syntax-guided synthesis. In FMCAD, 2013.
[3]
G. Ammons, R. Bodík, and J. R. Larus. Mining specifications. SIGPLAN Not., 37(1), 2002.
[4]
D. Andre and S. J. Russell. State abstraction for programmable reinforcement learning agents. In Eighteenth National Conference on Artificial Intelligence. American Association for Artificial Intelligence, 2002.
[5]
A. Bhattacharya, D. Culler, D. Hong, K. Whitehouse, and J. Ortiz. Writing scalable building efficiency applications using normalized metadata: Demo abstract. BuildSys ’14. ACM, 2014.
[6]
R. Bodik, S. Chandra, J. Galenson, D. Kimelman, N. Tung, S. Barman, and C. Rodarmor. Programming with angelic nondeterminism. In POPL, 2010.
[7]
H. Chen and J. Marques-Silva. Improvements to satisfiabilitybased boolean function bi-decomposition. In VLSI-SoC, 2011.
[8]
A. Cheung, A. Solar-Lezama, and S. Madden. Optimizing database-backed applications with query synthesis. SIGPLAN Not., 48(6):3–14, June 2013. ISSN 0362-1340.
[9]
. URL http://doi.acm.org/10.1145/2499370.2462180.
[10]
L. de Alfaro and T. A. Henzinger. Interface automata. In FSE, 2001.
[11]
G. Dennis, R. Seater, D. Rayside, and D. Jackson. Automating commutativity analysis at the design level. In ISSTA, 2004.
[12]
M. Diep, S. Elbaum, and M. Dwyer. Trace normalization. In ISSRE ’08. IEEE Computer Society, 2008.
[13]
M. D. Ernst, J. H. Perkins, P. J. Guo, S. McCamant, C. Pacheco, M. S. Tschantz, and C. Xiao. The Daikon system for dynamic detection of likely invariants. Science of Computer Programming, 69(1–3), Dec. 2007.
[14]
A. Gal, B. Eich, M. Shaver, D. Anderson, D. Mandelin, M. R. Haghighat, B. Kaplan, G. Hoare, B. Zbarsky, J. Orendorff, J. Ruderman, E. W. Smith, R. Reitmaier, M. Bebenita, M. Chang, and M. Franz. Trace-based just-in-time type specialization for dynamic languages. SIGPLAN Not., 44(6), June 2009.
[15]
S. Gulwani. Automating string processing in spreadsheets using input-output examples. POPL ’11. ACM, 2011.
[16]
S. Gulwani, S. Jha, A. Tiwari, and R. Venkatesan. Synthesis of loop-free programs. In Programming Language Design and Implementation (PLDI), 2011.
[17]
I. J. Heath. Unacceptable file operations in a relational data base. SIGFIDET ’71. ACM, 1971.
[18]
D. Hilbert. Über die stetige abbildung einer linie auf ein flachenstück. Math. Ann., 38, 1891.
[19]
S. Jha, S. Gulwani, S. A. Seshia, and A. Tiwari. Oracle-guided component-based program synthesis. In ICSE, 2010.
[20]
M. Karnaugh. The Map Method for Synthesis of Combinational Logic Circuits. Trans. AIEE. pt. I, 72(9), 1953.
[21]
I. Krka, Y. Brun, G. Edwards, and N. Medvidovic. Synthesizing partial component-level behavior models from system specifications. ESEC/FSE ’09. ACM, 2009.
[22]
V. Le, M. Afshari, and Z. Su. Compiler validation via equivalence modulo inputs. PLDI ’14. ACM, 2014.
[23]
T. T. Lee and T. Ye. A relational approach to functional decomposition of logic circuits. ACM Trans. Database Syst., 36(2), June 2011.
[24]
J. Li, G. Liu, H. Li, and L. Wong. Maximal biclique subgraphs and closed pattern pairs of the adjacency matrix: A one-to-one correspondence and mining algorithms. IEEE Trans. on Knowl. and Data Eng., 19(12), 2007.
[25]
A. V. Miranskyy, N. H. Madhavji, M. S. Gittens, M. Davison, M. Wilding, and D. Godwin. An iterative, multi-level, and scalable approach to comparing execution traces. In ESECFSE ’07, 2007.
[26]
A. Mishchenko, R. K. Brayton, and S. Chatterjee. Boolean factoring and decomposition of logic networks. In ICCAD, 2008.
[27]
G. M. Morton. A computer oriented geodetic data base; and a new technique in file sequencing. Technical Report, 1966.
[28]
J. H. Perkins, S. Kim, S. Larsen, S. Amarasinghe, J. Bachrach, M. Carbin, C. Pacheco, F. Sherwood, S. Sidiroglou, G. Sullivan, W.-F. Wong, Y. Zibin, M. D. Ernst, and M. Rinard. Automatically patching errors in deployed software. In SOSP, 2009.
[29]
A. Pnueli and R. Rosner. On the synthesis of a reactive module. In POPL, 1989.
[30]
Y. Pu, R. Bodik, and S. Srivastava. Synthesis of first-order dynamic programming algorithms. OOPSLA ’11. ACM, 2011.
[31]
J. Rissanen. Independent components of relations. ACM Trans. Database Syst., 2(4), Dec. 1977.
[32]
E. Schkufza, R. Sharma, and A. Aiken. Stochastic superoptimization. ASPLOS ’13. ACM, 2013.
[33]
A. Schumann, J. Ploennigs, and B. Gorman. Towards automating the deployment of energy saving approaches in buildings. BuildSys ’14. ACM, 2014.
[34]
R. Singh, S. Gulwani, and A. Solar-Lezama. Automated feedback generation for introductory programming assignments. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 15–26, New York, NY, USA, 2013. ACM. ISBN 978-1-4503-2014-6. URL http://doi.acm.org/10.1145/2491956.2462195.
[35]
A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for finite programs. SIGPLAN Not., 41(11), 2006.
[36]
A. Solar-Lezama, G. Arnold, L. Tancau, R. Bodik, V. Saraswat, and S. Seshia. Sketching stencils. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’07, pages 167–178, New York, NY, USA, 2007. ACM. ISBN 978-1-59593-633-2. URL http://doi.acm.org/10.1145/1250734.1250754.
[37]
E. Torlak and R. Bodik. A lightweight symbolic virtual machine for solver-aided host languages. In PLDI, 2014.
[38]
E. Torlak and D. Jackson. Kodkod: a relational model finder. In TACAS ’07. Springer-Verlag, 2007.
[39]
S. Uchitel and M. Chechik. Merging partial behavioural models. SIGSOFT ’04/FSE-12. ACM, 2004.
[40]
C. Wang, M. Said, and A. Gupta. Coverage guided systematic concurrency testing. ICSE ’11. ACM, 2011.
[41]
B. Xin, W. N. Sumner, and X. Zhang. Efficient program execution indexing. In PLDI ’08. ACM, 2008.

Cited By

View all
  • (2024)Parallel Assembly SynthesisLogic-Based Program Synthesis and Transformation10.1007/978-3-031-71294-4_1(3-26)Online publication date: 9-Sep-2024
  • (2023)Improving Oracle-Guided Inductive Synthesis by Efficient Question SelectionProceedings of the ACM on Programming Languages10.1145/35860557:OOPSLA1(819-847)Online publication date: 6-Apr-2023
  • (2021)LooPy: interactive program synthesis with control structuresProceedings of the ACM on Programming Languages10.1145/34855305:OOPSLA(1-29)Online publication date: 15-Oct-2021
  • Show More Cited By

Index Terms

  1. Toward tool support for interactive synthesis

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      Onward! 2015: 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)
      October 2015
      307 pages
      ISBN:9781450336888
      DOI:10.1145/2814228
      Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 21 October 2015

      Check for updates

      Author Tags

      1. Decomposition
      2. Refinement
      3. Relational Algebra
      4. Specifications

      Qualifiers

      • Research-article

      Conference

      SPLASH '15
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 40 of 105 submissions, 38%

      Upcoming Conference

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

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

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Parallel Assembly SynthesisLogic-Based Program Synthesis and Transformation10.1007/978-3-031-71294-4_1(3-26)Online publication date: 9-Sep-2024
      • (2023)Improving Oracle-Guided Inductive Synthesis by Efficient Question SelectionProceedings of the ACM on Programming Languages10.1145/35860557:OOPSLA1(819-847)Online publication date: 6-Apr-2023
      • (2021)LooPy: interactive program synthesis with control structuresProceedings of the ACM on Programming Languages10.1145/34855305:OOPSLA(1-29)Online publication date: 15-Oct-2021
      • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
      • (2020)Question selection for interactive program synthesisProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3386025(1143-1158)Online publication date: 11-Jun-2020
      • (2019)Maximal multi-layer specification synthesisProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338951(602-612)Online publication date: 12-Aug-2019
      • (2018)Programming not only by exampleProceedings of the 40th International Conference on Software Engineering10.1145/3180155.3180189(1114-1124)Online publication date: 27-May-2018
      • (2016)Probabilistic model for code with decision treesACM SIGPLAN Notices10.1145/3022671.298404151:10(731-747)Online publication date: 19-Oct-2016
      • (2016)Probabilistic model for code with decision treesProceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications10.1145/2983990.2984041(731-747)Online publication date: 19-Oct-2016

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media