编译作为一种类型化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}
}