@inproceedings{64f0b7095e444223ae7dcbb155033b28,
title = "Deeply reifying running code for constructing a domain-specific language",
abstract = "This paper presents deep reification, which is a language mechanism for reflective computing. It reifles a self-contained partial snapshot of the current execution environment. The snapshot contains not only data but also code and type definitions. This mechanism can be used as a common component of execution systems of embedded domain-specific languages (DSLs). Unlike typical implementations of embedded DSLs, the mechanism enables a DSL to borrow the host-language's syntax yet execute under a different semantics on different platforms from the host language's. DSL implementation can allow programmers to first construct a function closure as DSL code, reify a snapshot necessary for executing the function closure, transform the code in the snapshot into a program for a target platform, and finally execute the program. As a prototype system of deep reification, we have implemented Bytespresso for Java. This paper shows Bytespresso and also Bytespresso-C, our DSL built on top of Bytespresso. The target of this DSL is numerical computing on cluster computers and GPUs.",
keywords = "Embedded DSL, Meta programming, Parallel computing, Reflection",
author = "Shigeru Chiba and Yungyu Zhuang and Maximilian Scherr",
note = "Publisher Copyright: {\textcopyright} 2016 ACM.; 13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2016 ; Conference date: 29-08-2016 Through 31-08-2016",
year = "2016",
doi = "10.1145/2972206.2972219",
language = "???core.languages.en_GB???",
series = "ACM International Conference Proceeding Series",
publisher = "Association for Computing Machinery",
booktitle = "Proceedings of the 2016 International Conference on Principles and Practices of Programming on the Java Platform",
}