GPCE 2018
Mon 5 - Tue 6 November 2018 Boston, Massachusetts, United States
co-located with SPLASH 2018
Mon 5 Nov 2018 11:00 - 11:30 at Studio 2 - I Chair(s): Shoaib Kamil

Program generation is indispensable. We propose a novel unification of two existing metaprogramming techniques: multi-stage programming and hygienic macros. The former supports runtime code generation and execution in a type-safe manner while the latter offers compile-time code generation.

In this work we draw upon a long line of research on metaprogramming, starting with Lisp, MetaML and MetaOCaml. We provide direct support for quotes and splices, regulated by a Phase Consistency Principle. The latter simplifies the treatment of open code without sacrificing expressiveness. Our design enables the construction and combination of code values for both expressions and types. Moreover, code generation can happen either at runtime à la MetaOCaml or at compile time in a macro fashion.

We provide an implementation of our design in Scala and we present two case studies. The first implements the Hidden Markov Model, Shonan Challenge for HPC. The second implements the staged streaming library Strymonas.

Mon 5 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

10:30 - 12:00
IGPCE 2018 at Studio 2
Chair(s): Shoaib Kamil Adobe
10:30
30m
Talk
A Domain-Specific Language for Exploratory Data Visualization
GPCE 2018
Karl Smeltzer Oregon State University, Martin Erwig Oregon State University
11:00
30m
Talk
A Practical Unification of Multi-Stage Programming and Macros
GPCE 2018
Nicolas Stucki EPFL, Switzerland, Aggelos Biboudis EPFL, Switzerland, Martin Odersky EPFL, Switzerland
11:30
30m
Talk
Rash: From Reckless Interactions to Reliable Programs
GPCE 2018
William G Hatch University of Utah, Matthew Flatt University of Utah