GPCE 2015
Mon 26 - Tue 27 October 2015 Pittsburgh, Pennsylvania, United States
co-located with SPLASH 2015
Mon 26 Oct 2015 11:40 - 12:00 at Grand Station 1 - Session 2 Chair(s): Tiark Rompf

Embedded domain specific languages (EDSLs) are used to represent special-purpose code in a general-purpose language and they are used for applications like vector calculations and run-time code generation. Often, code in an EDSL is compiled to a target (e.g. GPU languages, JVM bytecode, assembly, JavaScript) and needs to interface with other code that is available at that level but uses other data representations or calling conventions. We present an approach for safely making available such APIs in a typed EDSL, guaranteeing correct conversions between data representations and the respect for calling conventions. When the code being interfaced with is the result of static compilation of host language code, we propose a way to auto-generate the needed boilerplate using meta-programming. We instantiate our technique with JavaScript as the target language, JS-Scala as the EDSL, Scala.js as the static compiler and Scala macros to generate the boilerplate, but our design is more generally applicable. We provide evidence of usefulness of our approach through a prototype implementation that we have applied in a non-trivial code base.

Mon 26 Oct

Displayed time zone: Eastern Time (US & Canada) change

10:30 - 12:00
Session 2GPCE at Grand Station 1
Chair(s): Tiark Rompf Purdue & Oracle Labs
Day opening
Opening Remarks

Shallow Embedding of DSLs via Online Partial Evaluation
Roland Lei├ča , Klaas Boesche Saarland University, Sebastian Hack , Richard Membarth German Research Center for Artificial Intelligence, Philipp Slusallek German Research Center for Artificial Intelligence
Almost First-Class Language Embedding: Taming Staged Embedded DSLs
Maximilian Scherr , Shigeru Chiba University of Tokyo
Generating Safe Boundary APIs between Typed EDSLs and their Environments
Bob Reynders iMinds - Distrinet, KU Leuven, Dominique Devriese iMinds - Distrinet, KU Leuven, Frank Piessens iMinds - Distrinet, KU Leuven