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
28 Citations
Synthesizing data structure refinements from integrity constraints
- Computer SciencePLDI
- 2021
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
- Computer ScienceIEEE Data Eng. Bull.
- 2018
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
- Computer ScienceProc. VLDB Endow.
- 2019
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
- Computer ScienceProc. ACM Program. Lang.
- 2020
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
- Computer Science
- 2019
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
- Computer SciencePLDI
- 2019
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
- Computer ScienceProc. ACM Program. Lang.
- 2020
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
- Computer ScienceArXiv
- 2021
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
- Computer Science
- 2019
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
- Computer ScienceInternational Journal on Software Tools for Technology Transfer
- 2018
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.
References
SHOWING 1-10 OF 32 REFERENCES
Sketching concurrent data structures
- Computer SciencePLDI '08
- 2008
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
- Computer SciencePOPL 2015
- 2015
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
- Computer ScienceESEC/FSE '11
- 2011
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
- Computer SciencePLDI 2016
- 2016
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
- Computer SciencePLDI '11
- 2011
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
- Computer SciencePLDI 2012
- 2012
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
- Computer ScienceTOPL
- 1981
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
- Computer Science
- 2008
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
- Computer ScienceProc. VLDB Endow.
- 2012
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
- Computer ScienceFMCAD 2013
- 2013
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.