Deeply reifying running code for constructing a domain-specific language

Shigeru Chiba, Yungyu Zhuang, Maximilian Scherr

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

3 Scopus citations

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.

Original languageEnglish
Title of host publicationProceedings of the 2016 International Conference on Principles and Practices of Programming on the Java Platform
Subtitle of host publicationVirtual Machines, Languages, and Tools, PPPJ 2016
PublisherAssociation for Computing Machinery
ISBN (Electronic)9781450341356
DOIs
StatePublished - 2016
Event13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2016 - Lugano, Switzerland
Duration: 29 Aug 201631 Aug 2016

Publication series

NameACM International Conference Proceeding Series
VolumePart F128404

Conference

Conference13th International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2016
Country/TerritorySwitzerland
CityLugano
Period29/08/1631/08/16

Keywords

  • Embedded DSL
  • Meta programming
  • Parallel computing
  • Reflection

Fingerprint

Dive into the research topics of 'Deeply reifying running code for constructing a domain-specific language'. Together they form a unique fingerprint.

Cite this