[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1869459.1869463acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

A simple inductive synthesis methodology and its applications

Published: 17 October 2010 Publication History

Abstract

Given a high-level specification and a low-level programming language, our goal is to automatically synthesize an efficient program that meets the specification. In this paper, we present a new algorithmic methodology for inductive synthesis that allows us to do this.
We use Second Order logic as our generic high level specification logic. For our low-level languages we choose small application-specific logics that can be immediately translated into code that runs in expected linear time in the worst case.
We explain our methodology and provide examples of the synthesis of several graph classifiers, e.g, linear-time tests of whether the input graph is connected, acyclic, etc. In another set of applications we automatically derive many finite differencing expressions equivalent to ones that Paige built by hand in his thesis [Pai81]. Finally we describe directions for automatically combining such automatically generated building blocks to synthesize efficient code implementing more complicated specifications.
The methods in this paper have been implemented in Python using the SMT solver Z3 [dMB].

References

[1]
}}Yanhong A. Liu and Scott D. Stoller. From datalog rules to efficient programs with time and space guarantees. ACM Trans. Program. Lang. Syst., 31(6), 2009.
[2]
}}Yanhong A. Liu and Tim Teitelbaum. Systematic derivation of incremental programs. Sci. Comput. Program., 24(1):1--39, 1995.
[3]
}}Stephen Muggleton, editor. Inductive Logic Programming, volume 38 of The APIC Series. Academic Press, 1992.
[4]
}}Robert Paige.Formal Differentiation - A Program Synthesis Technique. UMI Press, 1981.
[5]
}}Saurabh Srivastava, Sumit Gulwani, and Jeff Foster. From program verification to program synthesis. In POPL, pages 313--326, 2010.
[6]
}}Ehud Y. Shapiro. Algorithmic Program DeBugging. MIT Press, Cambridge, MA, USA, 1983.
[7]
}}Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Sanjit Seshia, and Vijay Saraswat. Combinatorial sketching for finite programs. In ASPLOS, 2006.
[8]
}}B.A. Brandin, R. Malik, and P. Malik.Incremental verification and synthesis of discrete-event systems guided by counter examples. Control Systems Technology, 12(3), May 2004.
[9]
}}Jiazhen Cai and Robert Paige. Binding performance at language design time. In POPL, pages 85--97, 1987.
[10]
}}Leonardo de Moura and Nikolaj Bjørner. Z3 an efficient smt solver.http://research. microsoft.com/en-us/um/redmond/ projects/z3/.
[11]
}}Pierre Flener and Lubos Popelmnsky. On the use of inductive reasoning in program synthesis: Prejudice and prospects. In LOBSTR'94. 1994.
[12]
}}E. Mark Gold. Language identification in the limit. Information and Control, 10(5):447--474, 1967.
[13]
}}Neil Immerman. Descriptive Complexity. Springer, New York, 1999.

Cited By

View all
  • (2020)Inductive program synthesis over noisy dataProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409732(87-98)Online publication date: 8-Nov-2020
  • (2020)Synthesizing Precise and Useful Commutativity ConditionsJournal of Automated Reasoning10.1007/s10817-020-09573-wOnline publication date: 29-Aug-2020
  • (2018)SynEva: Evaluating ML Programs by Mirror Program Synthesis2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS.2018.00031(171-182)Online publication date: Jul-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '10: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
October 2010
984 pages
ISBN:9781450302036
DOI:10.1145/1869459
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 45, Issue 10
    OOPSLA '10
    October 2010
    957 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1932682
    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: 17 October 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. finite differencing
  2. high-level program
  3. inductive synthesis
  4. transformational programming

Qualifiers

  • Research-article

Conference

SPLASH '10
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)6
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Inductive program synthesis over noisy dataProceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3368089.3409732(87-98)Online publication date: 8-Nov-2020
  • (2020)Synthesizing Precise and Useful Commutativity ConditionsJournal of Automated Reasoning10.1007/s10817-020-09573-wOnline publication date: 29-Aug-2020
  • (2018)SynEva: Evaluating ML Programs by Mirror Program Synthesis2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS.2018.00031(171-182)Online publication date: Jul-2018
  • (2017)Unbounded superoptimizationProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133856(78-88)Online publication date: 25-Oct-2017
  • (2017)Sound and Automated Synthesis of Digital Stabilizing Controllers for Continuous PlantsProceedings of the 20th International Conference on Hybrid Systems: Computation and Control10.1145/3049797.3049802(197-206)Online publication date: 13-Apr-2017
  • (2017)Automated Formal Synthesis of Digital Controllers for State-Space Physical PlantsComputer Aided Verification10.1007/978-3-319-63387-9_23(462-482)Online publication date: 13-Jul-2017
  • (2016)Searching for software diversityProceedings of the 2016 New Security Paradigms Workshop10.1145/3011883.3011891(80-91)Online publication date: 26-Sep-2016
  • (2016)An Automaton Learning Approach to Solving Safety Games over Infinite GraphsProceedings of the 22nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 963610.1007/978-3-662-49674-9_12(204-221)Online publication date: 2-Apr-2016
  • (2015)Synthesizing parallel graph programs via automated planningACM SIGPLAN Notices10.1145/2813885.273795350:6(533-544)Online publication date: 3-Jun-2015
  • (2015)Synthesizing parallel graph programs via automated planningProceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/2737924.2737953(533-544)Online publication date: 3-Jun-2015
  • 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