Generalized Data Structure Synthesis

@article{Loncaric2018GeneralizedDS,
  title={Generalized Data Structure Synthesis},
  author={Calvin Loncaric and Michael D. Ernst and Emina Torlak},
  journal={2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)},
  year={2018},
  pages={958-968}
}
Data structure synthesis is the task of generating data structure implementations from high-level specifications. Recent work in this area has shown potential to save programmer time and reduce the risk of defects. Existing techniques focus on data structures for manipulating subsets of a single collection, but real-world programs often track multiple related collections and aggregate properties such as sums, counts, minimums, and maximums. This paper shows how to synthesize data structures… 

Figures and Tables from this paper

Synthesizing data structure refinements from integrity constraints
TLDR
This work proposes a new technique for automatically refining data structures from integrity constraints, based on a modular instantiation of the CEGIS paradigm and uses a novel inductive synthesizer that augments top-down search with three key ideas.
The Periodic Table of Data Structures
TLDR
The vision of being able to reason about the design space of data structures is described and the first steps that demonstrate its feasibility are presented.
Generating Application-specific Data Layouts for In-memory Databases
TLDR
CHESTNUT is a data layout generator for in-memory object-oriented database applications that uses a novel enumeration and verification-based algorithm to generate query plans that use such data layouts, rather than rule-based approaches as in traditional query optimizers.
Dataflow-based pruning for speeding up superoptimization
TLDR
A pruning technique which reduces the enumerative search space using fast dataflow-based techniques to discard synthesis candidates that contain symbolic constants and uninstantiated instructions is presented.
Scaling Functional Synthesis and Repair
TLDR
A novel fault localization technique detects erroneous snippets with concrete execution and eliminates false positives by analyzing dependencies between execution traces, and a modified version of the synthesis algorithm generates fixes for it by introducing modifications to the original erroneous code.
Resource-guided program synthesis
TLDR
The experiments show that ReSyn synthesizes programs that are asymptotically more efficient than those generated by a resource-agnostic synthesizer, and is faster than a naive combination of synthesis and resource analysis.
Deductive optimization of relational data storage
TLDR
This paper uses deductive program synthesis to turn a high-level relational representation of a database query into a highly optimized low-level implementation which operates on a specialized layout of the dataset.
ReGiS: Regular Expression Simplification via Rewrite-Guided Synthesis
TLDR
This work presents a new approach called rewrite-guided synthesis (ReGiS), in which a unique interplay between SyGuS and equality saturation-based rewriting helps to overcome problems, resulting in an efficient, scalable framework for expression simplification.
A pr 2 01 9 Resource-Guided Program Synthesis Extended Version Tristan Knoth
This article presents resource-guided synthesis, a technique for synthesizing recursive programs that satisfy both a functional specification and a symbolic resource bound.The technique is
Automated workarounds from Java program specifications based on SAT solving
TLDR
This paper presents two techniques for computing workarounds from Java code equipped with formal specifications, that improve previous approaches in two respects and enable them to produce repairs that are more state specific.
...
1
2
3
...

References

SHOWING 1-10 OF 32 REFERENCES
Sketching concurrent data structures
TLDR
PSketch is a program synthesizer that helps programmers implement concurrent data structures using a new counterexample-guided inductive synthesis algorithm (CEGIS) that generalizes the original sketch synthesis algorithm from Solar-Lezama et.al.
Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant
TLDR
Fiat, a library for the Coq proof assistant supporting refinement of declarative specifications into efficient functional programs with a high degree of automation, includes a suite of tactics for automating the refinement of specifications intoefficient, correct-by-construction OCaml code.
Synthesizing data structure manipulations from storyboards
TLDR
The Storyboard Programming framework is presented, a new synthesis system designed to help programmers write imperative low-level data-structure manipulations and is based on a new approach for combining constraint-based synthesis and abstract-interpretation-based shape analysis.
Fast synthesis of fast collections
TLDR
A novel approach for synthesizing efficient implementations of complex collection data structures from high-level specifications that describe the desired retrieval operations, which handles a wider range of data structures than previous work, including structures that maintain an order among their elements or have complex retrieval methods.
Data representation synthesis
TLDR
A language of decompositions that permit the user to specify different concrete representations for relations, and it is shown that operations on concrete representations soundly implement their relational specification.
Concurrent data representation synthesis
We describe an approach for synthesizing data representations for concurrent programs. Our compiler takes as input a program written using concurrent relations and synthesizes a representation of the
An Automatic Technique for Selection of Data Representations in SETL Programs
TLDR
This chapter describes a new technique for automatic selection of appropriate data representations during compile time for programs with omitted declarations and presents an efficient data representation selection algorithm, whose complexity is comparable with those of the fastest known general data-flow algorithms of Tarjan and Reif.
Program synthesis by sketching
TLDR
Sketching is introduced, a new style of synthesis that offers a fresh approach to the synergy problem and shows that sketching is a viable approach to making synthesis practical in a general programming context.
DBToaster: Higher-order Delta Processing for Dynamic, Frequently Fresh Views
TLDR
Viewlet transforms are developed into a workable query execution technique, a heuristic and cost-based optimization framework is presented, and experiments with a prototype dynamic data management system that combines viewlet transforms with an optimizing compilation technique are reported on.
Syntax-guided synthesis
TLDR
This work describes three different instantiations of the counter-example-guided-inductive-synthesis (CEGIS) strategy for solving the synthesis problem, reports on prototype implementations, and presents experimental results on an initial set of benchmarks.
...
1
2
3
4
...