Polymorphic Embedding

The usual methodology of embedding domain-specific languages (DSLs) as libraries forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domain-specific analyses. We propose polymorphic embedding of DSLs, where many different interpretations of a DSL can be provided as reusable components, and show how polymorphic embedding can be realized in the programming language Scala. With polymorphic embedding, the static type-safety, modularity, composability and rapid prototyping of the embedded approach are reconciled with the flexibility attainable by external toolchains.

Paper

Christian Hofer, Klaus Ostermann, Tillmann Rendel, Adriaan Moors: Polymorphic Embedding of DSLs. submitted to GPCE '08

Downloads

filecontents
polyemb.zip accompanying source code to the paper