skip to main content
10.1145/2517208.2517225acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

On the simplicity of synthesizing linked data structure operations

Published: 27 October 2013 Publication History

Abstract

We argue that synthesizing operations on recursive linked data structures is not as hard as it appears and is, in fact, within reach of current SAT-based synthesis techniques - with the addition of a simple approach that we describe to decompose the problem into smaller parts. To generate smaller pieces of code, i.e., shorter routines, is obviously easier than large and complex routines, and, also, there is more potential for automating the code synthesis.
In this paper, we present a code generation algorithm for synthesizing operations of linked data structures and, as an example, describe how the proposed algorithm works to synthesize operations of an AVL tree.

References

[1]
G. Adelson-Velskii and E. M. Landis. An algorithm for the organization of information. Proceedings of the USSR Academy of Sciences, 146:263--266, 1962. (Russian) English translation by Myron J. Ricci in Soviet Math. Doklady, 3(2):1259--1263, 1962.
[2]
T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. The MIT Press and McGraw-Hill, 2nd edition, 2001.
[3]
G. Dennis. A Relational Framework for Bounded Program Verification. PhD thesis, MIT, 2009.
[4]
S. Gulwani. Dimensions in program synthesis. In PPDP. 2010. Invited talk paper.
[5]
S. Gulwani, S. Jha, A. Tiwari, and R. Venkatesan. Synthesis of loop-free programs. In PLDI, 2011.
[6]
D. Jackson. Software Abstractions: Logic, Language, and Analysis. The MIT Press, revised edition, 2012.
[7]
V. Kuncak, M. Mayer, R. Piskac, and P. Suter. Complete functional synthesis. In PLDI, 2010.
[8]
K. R. M. Leino and A. Milicevic. Program extrapolation with Jennisys. In OOPSLA, 2012.
[9]
D. Rayside, S. Montaghami, S. Leung, S. Yuen, S. Xu, and D. Jackson. Synthesizing iterators from abstraction functions. In GPCE, 2012.
[10]
A. Solar-Lezama, L. Tancau, R. Bodik, V. Saraswat, and S. A. Seshia. Combinatorial sketching for finite programs. In ASPLOS. 2006.
[11]
A. Solar-Lezama, C. G. Jones, and R. Bodik. Sketching concurrent data structures. In PLDI, 2008.
[12]
S. Srivastava, S. Gulwani, and J. S. Foster. From program verification to program synthesis. In POPL, 2010.
[13]
K. Yessenov. A light-weight specification language for bounded program verification. Master's thesis, MIT, 2009.

Cited By

View all

Index Terms

  1. On the simplicity of synthesizing linked data structure operations

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      GPCE '13: Proceedings of the 12th international conference on Generative programming: concepts & experiences
      October 2013
      198 pages
      ISBN:9781450323734
      DOI:10.1145/2517208
      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: 27 October 2013

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. avl trees
      2. code generation algorithm
      3. linked data structures
      4. program synthesis
      5. sat-solver

      Qualifiers

      • Research-article

      Conference

      GPCE'13
      Sponsor:
      GPCE'13: Generative Programming: Concepts and Experiences
      October 27 - 28, 2013
      Indiana, Indianapolis, USA

      Acceptance Rates

      GPCE '13 Paper Acceptance Rate 20 of 59 submissions, 34%;
      Overall Acceptance Rate 56 of 180 submissions, 31%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)1
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 16 Jan 2025

      Other Metrics

      Citations

      Cited By

      View all

      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