中文

编译作为一种类型化EDSL到EDSL的转换

计算与语言 2018-04-20 v3

摘要

本文讨论一种用于 RAW-Feldspar 的实现与编译技术,RAW-Feldspar 是 Feldspar 嵌入式领域特定语言(EDSL)(Axelsson 等人,2010)的完整重写。Feldspar 是一种生成高效 C 代码以在嵌入式目标上运行的高级函数式语言。本文所呈现技术的要点如下:我们不直接编写将纯 Feldspar 表达式转换为 C 的后端,而是将它们翻译为一种低级的单子式 EDSL(monadic EDSL)。随后从该低级 EDSL 生成 C 代码。此方法具有若干优势:1. 该翻译比完整的 C 后端更易于编写。2. 该翻译在两个类型化 EDSL 之间进行,排除了许多潜在错误。3. 低级 EDSL 可复用,并可在多个高级 EDSL 之间共享。尽管本文包含大量代码,事实上其中大部分是可复用的。如讨论部分所述,利用我们为支持 Feldspar 开发的通用库,可用少于 50 行代码实现相同功能。

关键词

引用

@article{arxiv.1603.08865,
  title  = {Compilation as a Typed EDSL-to-EDSL Transformation},
  author = {Emil Axelsson},
  journal= {arXiv preprint arXiv:1603.08865},
  year   = {2018}
}