Introduction to algorithms
Combinatorial sketching for finite programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Sketching concurrent data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
From program verification to program synthesis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Dimensions in program synthesis
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Synthesis of loop-free programs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Synthesizing iterators from abstraction functions
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Program extrapolation with jennisys
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
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.