Show simple item record

dc.contributor.authorKuraj, Ivan
dc.contributor.authorKuncak, Viktor
dc.contributor.authorJackson, Daniel
dc.date.accessioned2018-06-06T13:49:31Z
dc.date.available2018-06-06T13:49:31Z
dc.date.issued2015-10
dc.identifier.isbn978-1-4503-3689-5
dc.identifier.urihttp://hdl.handle.net/1721.1/116136
dc.description.abstractWe present an efficient, modular, and feature-rich framework for automated generation and validation of complex structures, suitable for tasks that explore a large space of structured values. Our framework is capable of exhaustive, incremental, parallel, and memoized enumeration from not only finite but also infinite domains, while providing fine-grained control over the process. Furthermore, the framework efficiently supports the inverse of enumeration (checking whether a structure can be generated and fast-forwarding to this structure to continue the enumeration) and lazy enumeration (achieving exhaustive testing without generating all structures). The foundation of efficient enumeration lies in both direct access to encoded structures, achieved with well-known and new pairing functions, and dependent enumeration, which embeds constraints into the enumeration to avoid backtracking. Our framework defines an algebra of enumerators, with combinators for their composition that preserve exhaustiveness and efficiency. We have implemented our framework as a domain-specific language in Scala. Our experiments demonstrate better performance and shorter specifications by up to a few orders of magnitude compared to existing approaches.en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (Grant CCF-1438969)en_US
dc.description.sponsorshipEuropean Research Councilen_US
dc.description.sponsorshipSwiss National Science Foundationen_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machineryen_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2814270.2814323en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT Web Domainen_US
dc.titleProgramming with enumerable sets of structuresen_US
dc.typeArticleen_US
dc.identifier.citationKuraj, Ivan, Viktor Kuncak, and Daniel Jackson. "Programming with Enumerable Sets of Structures." OOPSLA 2015 Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, 25-30 October, 2015, Pittsburgh, Pennsylvania, ACM Press, 2015, pp. 37–56.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorKuraj, Ivan
dc.contributor.mitauthorJackson, Daniel
dc.relation.journalProceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications - OOPSLA 2015en_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.orderedauthorsKuraj, Ivan; Kuncak, Viktor; Jackson, Danielen_US
dspace.embargo.termsNen_US
dc.identifier.orcidhttps://orcid.org/0000-0001-5891-0208
dc.identifier.orcidhttps://orcid.org/0000-0003-4864-078X
mit.licenseOPEN_ACCESS_POLICYen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record