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

10:30 - 12:00: GPCE - Session 2 at Grand Station 1
Chair(s): Tiark RompfPurdue & Oracle Labs
gpce201510:30 - 10:40
Day opening
gpce201510:40 - 11:10
Roland Lei├ča, Klaas BoescheSaarland University, Sebastian Hack, Richard MembarthGerman Research Center for Artificial Intelligence, Philipp SlusallekGerman Research Center for Artificial Intelligence
gpce201511:10 - 11:40
Maximilian Scherr, Shigeru ChibaUniversity of Tokyo
gpce201511:40 - 12:00
Bob ReyndersiMinds - Distrinet, KU Leuven, Dominique DevrieseiMinds - Distrinet, KU Leuven, Frank PiessensiMinds - Distrinet, KU Leuven