Show simple item record

dc.contributor.authorKoppel, James
dc.contributor.authorPremtoon, Varot
dc.contributor.authorSolar Lezama, Armando
dc.date.accessioned2019-07-11T18:21:12Z
dc.date.available2019-07-11T18:21:12Z
dc.date.issued2018-10
dc.identifier.issn2475-1421
dc.identifier.urihttps://hdl.handle.net/1721.1/121586
dc.description.abstractWe present a new approach for building source-to-source transformations that can run on multiple programming languages, based on a new way of representing programs called incremental parametric syntax. We implement this approach in Haskell in our Cubix system, and construct incremental parametric syntaxes for C, Java, JavaScript, Lua, and Python. We demonstrate a whole-program refactoring tool that runs on all of them, along with three smaller transformations that each run on several. Our evaluation shows that (1) once a transformation is written, little work is required to configure it for a new language (2) transformations built this way output readable code which preserve the structure of the original, according to participants in our human study, and (3) our transformations can still handle language corner-cases, as validated on compiler test suites.en_US
dc.language.isoen
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/3276492en_US
dc.rightsCreative Commons Attribution 4.0 International licenseen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceACMen_US
dc.titleOne tool, many languages: language-parametric transformation with incremental parametric syntaxen_US
dc.typeArticleen_US
dc.identifier.citationKoppel, James et al. "One tool, many languages: language-parametric transformation with incremental parametric syntax." Proceedings of the ACM on Programming Languages 2, OOPSLA (November 2018): 122 © 2018 Association of Computing Machineryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.relation.journalJournal Proceedings of the ACM on Programming Languagesen_US
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dc.date.updated2019-07-10T13:40:29Z
dspace.date.submission2019-07-10T13:40:31Z
mit.journal.volume2en_US
mit.journal.issueOOPSLAen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record