Wed 7 Nov 2018 14:37 - 15:00 at Studio 2 - Language Design 1 Chair(s): Eelco Visser

We 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.

Wed 7 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

13:30 - 15:00
Language Design 1OOPSLA at Studio 2
Chair(s): Eelco Visser Delft University of Technology
13:30
22m
Talk
AnyDSL: A Partial Evaluation Framework for Programming High-Performance Libraries
OOPSLA
Roland Leißa Saarland University, Germany, Klaas Boesche Saarland University, Sebastian Hack Saarland University, Germany, Arsène Pérard-Gayot Saarland University, Germany, Richard Membarth DFKI, Germany, Philipp Slusallek DFKI, Germany, André Müller Johannes Gutenberg University, Bertil Schmidt Johannes Gutenberg University
13:52
22m
Talk
Julia: Dynamism and Performance Reconciled by Design
OOPSLA
Jeff Bezanson Julia Computing, Benjamin Chung Northeastern University, Jiahao Chen Capital One, Stefan Karpinski , Viral B Shah Julia Computing, Jan Vitek Northeastern University, Lionel Zoubritzky École Normale Supérieure
14:15
22m
Talk
GraphIt - A High-Performance Graph DSL
OOPSLA
14:37
22m
Talk
One Tool, Many Languages: Language-Parametric Transformation with Incremental Parametric Syntax
OOPSLA