Show simple item record

dc.contributor.authorRayside, Derek
dc.contributor.authorMotaghami, Vajihollah
dc.contributor.authorLeung, Francesca
dc.contributor.authorYuen, Albert
dc.contributor.authorXu, Kevin
dc.contributor.authorJackson, Daniel
dc.date.accessioned2014-05-19T19:56:13Z
dc.date.available2014-05-19T19:56:13Z
dc.date.issued2012-09
dc.identifier.isbn978-1-4503-1129-8
dc.identifier.urihttp://hdl.handle.net/1721.1/87058
dc.description.abstractA 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.en_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2371401.2371407en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceOther univ. web domainen_US
dc.titleSynthesizing Iterators from Abstraction Functionsen_US
dc.typeArticleen_US
dc.identifier.citationDerek 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.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorJackson, Danielen_US
dc.relation.journalProceedings of the 11th International Conference on Generative Programming and Component Engineering (GPCE '12)en_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dspace.orderedauthorsRayside, Derek; Motaghami, Vajihollah; Leung, Francesca; Yuen, Albert; Xu, Kevin; Jackson, Danielen_US
dc.identifier.orcidhttps://orcid.org/0000-0003-4864-078X
mit.licenseOPEN_ACCESS_POLICYen_US
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record