Open Access
Data representation synthesis
Peter Hawkins,Alex Aiken,Kathleen Fisher,Martin Rinard,Mooly Sagiv +4 more
- 01 Jun 2011
53
TL;DR: 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.
read more
Abstract: We consider the problem of specifying combinations of data structures with complex sharing in a manner that is both declarative and results in provably correct code. In our approach, abstract data types are specified using relational algebra and functional dependencies. We describe a language of decompositions that permit the user to specify different concrete representations for relations, and show that operations on concrete representations soundly implement their relational specification. It is easy to incorporate data representations synthesized by our compiler into existing systems, leading to code that is simpler, correct by construction, and comparable in performance to the code it replaces.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Automated feedback generation for introductory programming assignments
Rishabh Singh,Sumit Gulwani,Armando Solar-Lezama +2 more
- 16 Jun 2013
TL;DR: A simple language for describing error models in terms of correction rules is introduced, and a rule-directed translation strategy is formally defined that reduces the problem of finding minimal corrections in an incorrect program to the problems of synthesizing a correct program from a sketch.
•Proceedings Article
Design Continuums and the Path Toward Self-Designing Key-Value Stores that Know and Learn.
Stratos Idreos,Niv Dayan,Wilson Qin,Mali Akmanalp,Sophie Hilgard,Andrew S. Ross,James Lennon,Varun Jain,Harshita Gupta,David Li,Zichen Zhu +10 more
- 01 Jan 2019
TL;DR: This work introduces the concept of design continuums for the data layout of key-value stores and presents the first continuum that unifies major data structure designs, i.e., Btree, B tree, LSM-tree, and LSH-table.
Concurrent data representation synthesis
Peter Hawkins,Alex Aiken,Kathleen Fisher,Martin Rinard,Mooly Sagiv +4 more
- 11 Jun 2012
TL;DR: An approach for synthesizing data representations for concurrent programs that takes as input a program written using concurrent relations and synthesizes a representation of the relations as sets of cooperating data structures as well as the placement and acquisition of locks to synchronize concurrent access to those data structures.
Synthesizing database programs for schema refactoring
Yuepeng Wang,James Dong,Rushi Shah,Isil Dillig +3 more
- 08 Jun 2019
TL;DR: In this paper, the authors propose a technique for automatically synthesizing a new version of a database program given its original version and the source and target schemas, which does not require manual user guidance and ensures that the synthesized program is equivalent to the original one.
Legion: Programming Distributed Heterogeneous Architectures with Logical Regions
Michael Bauer
- 01 Jan 2014
TL;DR: A novel mapping interface is introduced that gives an application programmatic control over mapping decisions at runtime that guarantees that the decisions made through the mapping interface are independent of the correctness of the program, thus facilitating easy porting and tuning of applications to new architectures with different performance characteristics.
References
Separation logic: a logic for shared mutable data structures
John C. Reynolds
- 22 Jul 2002
TL;DR: An extension of Hoare logic that permits reasoning about low-level imperative programs that use shared mutable data structure is developed, including extensions that permit unrestricted address arithmetic, dynamically allocated arrays, and recursive procedures.
•Proceedings Article
An Efficient Cost-Driven Index Selection Tool for Microsoft SQL Server
Surajit Chaudhuri,Vivek Narasayya +1 more
- 25 Aug 1997
TL;DR: Novel techniques that make it possible to build an industrial-strength tool for automating the choice of indexes in the physical design of a SQL database, and an iterative approach to handle the complexity arising from multicolumn indexes are described.
Automated feedback generation for introductory programming assignments
Rishabh Singh,Sumit Gulwani,Armando Solar-Lezama +2 more
- 16 Jun 2013
TL;DR: A simple language for describing error models in terms of correction rules is introduced, and a rule-directed translation strategy is formally defined that reduces the problem of finding minimal corrections in an incorrect program to the problems of synthesizing a correct program from a sketch.
Fiat: Deductive Synthesis of Abstract Data Types in a Proof Assistant
Benjamin Delaware,Clément Pit-Claudel,Jason Gross,Adam Chlipala +3 more
- 14 Jan 2015
TL;DR: 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.
Programming by Refinement, as Exemplified by the SETL Representation Sublanguage
TL;DR: The facilities provided by the representation sublanguage and the run-time data structures that it can generate are described and a heuristic which uses some of the methods of global program analysis and which should be capable of selecting an acceptably efficient representation automatically is given.
107