Sangam: A Confluence of Knowledge Streams

Synthesizing Iterators from Abstraction Functions

Show simple item record

dc.contributor Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.contributor Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.contributor Jackson, Daniel
dc.creator Rayside, Derek
dc.creator Motaghami, Vajihollah
dc.creator Leung, Francesca
dc.creator Yuen, Albert
dc.creator Xu, Kevin
dc.creator Jackson, Daniel
dc.date 2014-05-19T19:56:13Z
dc.date 2014-05-19T19:56:13Z
dc.date 2012-09
dc.date.accessioned 2023-03-01T18:11:08Z
dc.date.available 2023-03-01T18:11:08Z
dc.identifier 978-1-4503-1129-8
dc.identifier http://hdl.handle.net/1721.1/87058
dc.identifier Derek Rayside, Vajihollah Montaghami, Francesca Leung, Albert Yuen, Kevin Xu, and Daniel Jackson. 2012. Synthesizing iterators from abstraction functions. In Proceedings of the 11th International Conference on Generative Programming and Component Engineering (GPCE '12). ACM, New York, NY, USA, 31-40.
dc.identifier https://orcid.org/0000-0003-4864-078X
dc.identifier.uri http://localhost:8080/xmlui/handle/CUHPOERS/279072
dc.description A technique for synthesizing iterators from declarative abstraction functions written in a relational logic specification language is described. The logic includes a transitive closure operator that makes it convenient for expressing reachability queries on linked data structures. Some optimizations, including tuple elimination, iterator flattening, and traversal state reduction, are used to improve performance of the generated iterators. A case study demonstrates that most of the iterators in the widely used JDK Collections classes can be replaced with code synthesized from declarative abstraction functions. These synthesized iterators perform competitively with the hand-written originals. In a user study the synthesized iterators always passed more test cases than the hand-written ones, were almost always as efficient, usually took less programmer effort, and were the qualitative preference of all participants who provided free-form comments.
dc.format application/pdf
dc.language en_US
dc.publisher Association for Computing Machinery (ACM)
dc.relation http://dx.doi.org/10.1145/2371401.2371407
dc.relation Proceedings of the 11th International Conference on Generative Programming and Component Engineering (GPCE '12)
dc.rights Creative Commons Attribution-Noncommercial-Share Alike
dc.rights http://creativecommons.org/licenses/by-nc-sa/4.0/
dc.source Other univ. web domain
dc.title Synthesizing Iterators from Abstraction Functions
dc.type Article
dc.type http://purl.org/eprint/type/ConferencePaper


Files in this item

Files Size Format View
Jackson_Synthesizing iterators.pdf 332.0Kb application/pdf View/Open

This item appears in the following Collection(s)

Show simple item record

Search DSpace


Advanced Search

Browse