Data Structure Synthesis

Data Structure Synthesis
Author :
Publisher :
Total Pages : 92
Release :
ISBN-10 : OCLC:1091905377
ISBN-13 :
Rating : 4/5 ( Downloads)

Book Synopsis Data Structure Synthesis by : Calvin Loncaric

Download or read book Data Structure Synthesis written by Calvin Loncaric and published by . This book was released on 2018 with total page 92 pages. Available in PDF, EPUB and Kindle. Book excerpt: Data structures are integral to software. Many programs require custom application-specific data structures more complicated than those found in standard libraries. Implementing and maintaining application-specific data structures is tedious and error-prone. This work presents Cozy, a novel tool that synthesizes efficient implementations of application-specific data structures from high-level specifications. Cozy handles a wider range of data structures than previous work, including structures that track multiple related collections and have complex retrieval methods involving sums, counts, minimums, and maximums. Cozy iteratively discovers good data structures using alternating steps of query synthesis and state maintenance. The query synthesis step implements pure operations over the data structure state by leveraging existing enumerative synthesis techniques, specialized to the data structures domain. The state maintenance step implements imperative state modifications by re-framing them as fresh queries that determine what to change, coupled with a small amount of code to apply the change. As an added benefit of this approach over previous work, the synthesized data structure is optimized for not only the queries in the specification but also the required update operations. Cozy has three goals: to reduce programmer effort, to produce bug-free code, and to match the performance of handwritten code. We have evaluated Cozy in four large case studies, demonstrating that it meets the goals. Using Cozy requires an order of magnitude fewer lines of code than manual implementation, results in fewer bugs, and matches the performance of handwritten code. Finally, we have used Cozy as an automatic incrementalizer. An incremental algorithm can update its output efficiently in response to small changes to its input. Replacing batch-style algorithms with incremental versions yields incredible speedups when the input data changes frequently. Cozy is well-suited to the problem since incrementalization is simply the task of finding the right data structure to track state between changes to the input. By re-framing the incremental computation task as a data structure specification we can produce efficient incremental versions in more situations than previous work.


Data Structure Synthesis Related Books

Data Structure Synthesis
Language: en
Pages: 92
Authors: Calvin Loncaric
Categories:
Type: BOOK - Published: 2018 - Publisher:

DOWNLOAD EBOOK

Data structures are integral to software. Many programs require custom application-specific data structures more complicated than those found in standard librar
New Data Structures and Algorithms for Logic Synthesis and Verification
Language: en
Pages: 162
Authors: Luca Gaetano Amaru
Categories: Technology & Engineering
Type: BOOK - Published: 2016-08-02 - Publisher: Springer

DOWNLOAD EBOOK

This book introduces new logic primitives for electronic design automation tools. The author approaches fundamental EDA problems from a different, unconventiona
Synthesis of Data Structures from Their Algebraic Descriptions
Language: en
Pages: 244
Authors: Howard Franklin Okrent
Categories:
Type: BOOK - Published: 1977 - Publisher:

DOWNLOAD EBOOK

Synthesis of Data Structures from Their Algebraic Description
Language: en
Pages: 488
Authors: Howard Franklin Okrent
Categories: Data structures (Computer science)
Type: BOOK - Published: 1977 - Publisher:

DOWNLOAD EBOOK

Program Synthesis
Language: en
Pages: 138
Authors: Sumit Gulwani
Categories: Computers
Type: BOOK - Published: 2017-07-11 - Publisher:

DOWNLOAD EBOOK

Program synthesis is the task of automatically finding a program in the underlying programming language that satisfies the user intent expressed in the form of