Generalized data structure synthesis
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 col...
Uloženo v:
| Vydáno v: | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) s. 958 - 968 |
|---|---|
| Hlavní autoři: | , , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
New York, NY, USA
ACM
27.05.2018
|
| Edice: | ACM Conferences |
| Témata: | |
| ISBN: | 9781450356381, 1450356389 |
| ISSN: | 1558-1225 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | 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 that track subsets and aggregations of multiple related collections. Our technique decomposes the synthesis task into alternating steps of query synthesis and incrementalization. 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 incrementalization 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. We have evaluated our approach in four large case studies, demonstrating that these extensions are broadly applicable. |
|---|---|
| AbstractList | 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 that track subsets and aggregations of multiple related collections. Our technique decomposes the synthesis task into alternating steps of query synthesis and incrementalization. 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 incrementalization 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. We have evaluated our approach in four large case studies, demonstrating that these extensions are broadly applicable. 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 that track subsets and aggregations of multiple related collections. Our technique decomposes the synthesis task into alternating steps of query synthesis and incrementalization. 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 incrementalization 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. We have evaluated our approach in four large case studies, demonstrating that these extensions are broadly applicable. |
| Author | Loncaric, Calvin Torlak, Emina Ernst, Michael D. |
| Author_xml | – sequence: 1 givenname: Calvin surname: Loncaric fullname: Loncaric, Calvin email: loncaric@cs.washington.edu organization: University of Washington – sequence: 2 givenname: Michael D. surname: Ernst fullname: Ernst, Michael D. email: mernst@cs.washington.edu organization: University of Washington – sequence: 3 givenname: Emina surname: Torlak fullname: Torlak, Emina email: emina@cs.washington.edu organization: University of Washington |
| BookMark | eNqNkD1PwzAURc2XRCmZGVgyMLAk-Nl5ycuIKihIlVhgthz7RQTaBMXpUH59UzUTE9MZju4dzpU4b7uWhbgBmQJk-KCBJCCmByqAExGVBY1Casw1wamYjZYSUArP_rhLEYXwJaVUOWUE-UzcLbnl3q6bX_axt4ONw9Bv3bDtOQ67dvjk0IRrcVHbdeBo4lx8PD-9L16S1dvydfG4SqzKiiGpPFlVo3QAjrEEWcuKWDnyrDyRJot5DaA9195mOvdKM2KFslSFcrnUc3F7_G2Y2fz0zcb2O0MZaihwtOnRWrcxVdd9BwPSHJKYKYmZkpiqb7geB_f_HOg9mhBcoQ |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| Copyright | 2018 ACM |
| Copyright_xml | – notice: 2018 ACM |
| DBID | 6IE 6IH CBEJK RIE RIO |
| DOI | 10.1145/3180155.3180211 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9781450356381 1450356389 |
| EISSN | 1558-1225 |
| EndPage | 968 |
| ExternalDocumentID | 8453175 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IF 6IG 6IL 6IM 6IN AAJGR ABLEC ABQGA ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IEGSK IJVOP LHSKQ OCL RIB RIC RIE RIL RIO -~X .4S .DC 123 23M 29O 5VS 6IH 6IK 8US AAWTH ADZIZ AFFNX ARCSS AVWKF CHZPO EDO FEDTE I-F I07 IPLJI M43 RNS XOL |
| ID | FETCH-LOGICAL-a247t-bd8a2f50c11ce5910f0b8e2c8de2d8838a56f113defda436d23e55b509272c603 |
| IEDL.DBID | RIE |
| ISBN | 9781450356381 1450356389 |
| ISICitedReferencesCount | 15 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000454843300121&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 02:08:00 EDT 2025 Fri Sep 13 11:04:35 EDT 2024 |
| IsPeerReviewed | false |
| IsScholarly | true |
| Keywords | program synthesis automatic programming data structures |
| Language | English |
| License | Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org. |
| LinkModel | DirectLink |
| MeetingName | ICSE '18: 40th International Conference on Software Engineering |
| MergedId | FETCHMERGED-LOGICAL-a247t-bd8a2f50c11ce5910f0b8e2c8de2d8838a56f113defda436d23e55b509272c603 |
| PageCount | 11 |
| ParticipantIDs | acm_books_10_1145_3180155_3180211_brief ieee_primary_8453175 acm_books_10_1145_3180155_3180211 |
| PublicationCentury | 2000 |
| PublicationDate | 20180527 2018-May |
| PublicationDateYYYYMMDD | 2018-05-27 2018-05-01 |
| PublicationDate_xml | – month: 05 year: 2018 text: 20180527 day: 27 |
| PublicationDecade | 2010 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationSeriesTitle | ACM Conferences |
| PublicationTitle | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) |
| PublicationTitleAbbrev | ICSE |
| PublicationYear | 2018 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| SSID | ssj0002684816 ssj0006499 |
| Score | 2.211145 |
| Snippet | Data structure synthesis is the task of generating data structure implementations from high-level specifications. Recent work in this area has shown potential... |
| SourceID | ieee acm |
| SourceType | Publisher |
| StartPage | 958 |
| SubjectTerms | automatic programming Data structures Program synthesis Servers Software Software and its engineering -- Software notations and tools -- Compilers -- Source code generation Synthesizers Task analysis Theory of computation -- Design and analysis of algorithms -- Data structures design and analysis |
| Title | Generalized data structure synthesis |
| URI | https://ieeexplore.ieee.org/document/8453175 |
| WOSCitedRecordID | wos000454843300121&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PS8MwFH5sw4OnqZs4f1Fh4MVuTdo06VkdHmQMprJbSZoX2MEq6yboX2_SxokgiKeWEmj50rz39TXf9wCGihNMDdFh7EKgpdQmVAWLw0hxZEqYrCldPN3z6VQsFtmsBVdbLQwi1pvPcORO63_5-qXYuFLZWCTMpbs2tDlPG63Wtp7iXEuEozo-Cqf2vt7KhyRsbF9dxw5G7khdu6C2LJ5_dFSpE8qk-79H2YP-tzIvmG1zzj60sDyA7ldrhsCv1B4MvZ308gN1cCPXMpjXRrGbFQbz99KyvmpZ9eFxcvtwfRf6hgihpAlfh0oLSQ2LCkKceopEJlICaSE0Ui1ELCSzuJNYo9EyiVNNY2RMWU5AOS3SKD6ETvlS4hEE1IY1xqMETWKcZ6CMtNGZlpkgdpKMHsCFBSh3TL_KG_Eyyz2IuQdxAJd_jsmV_eI3A-g5CPPXxkEj9-gd_375BHYtLRHNtsJT6Fh88Ax2irf1slqd19P-CcRNpwo |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1dS8MwFL1sU9CnqZs4PysMfLFbkzZt9qyOiXMMNmVvIW1uYA92sm6C_nqTtk4EQXxqKIWU0_Te09uccwHacUQw1ES5vg2BhlJrN06Y73pxhCzmuleULp6H0WjEZ7PeuALXGy0MIuabz7Bjh_m_fLVI1rZU1uUBs-muClssCKhXqLU2FRXrW8It2SnjcGhmLs18SMC6ZvFaftCxR2obBlVl8vKjp0qeUvr1_93MHjS_tXnOeJN19qGC6QHUv5ozOOW72oB2aSg9_0Dl3MqVdCa5Vex6ic7kPTW8L5tnTXjq301vBm7ZEsGVNIhWbqy4pJp5CSFWP0U87cUcacIVUsW5zyUzyBNfoVYy8ENFfWQsNqyARjQJPf8QaukixSNwqAlsLPIC1IG2roHSU1r1lOxxYh6TVi24NAAJy_UzUciXmShBFCWILbj68xoRm29-3YKGhVC8Fh4aokTv-PfTF7AzmD4OxfB-9HACu4ak8GKT4SnUDFZ4BtvJ22qeLc_zJfAJqeOqUQ |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2018+IEEE%2FACM+40th+International+Conference+on+Software+Engineering+%28ICSE%29&rft.atitle=Generalized+Data+Structure+Synthesis&rft.au=Loncaric%2C+Calvin&rft.au=Ernst%2C+Michael+D.&rft.au=Torlak%2C+Emina&rft.date=2018-05-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=958&rft.epage=968&rft_id=info:doi/10.1145%2F3180155.3180211&rft.externalDocID=8453175 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/sc.gif&client=summon&freeimage=true |

