我正在设计一个转换为 Java 源代码的 DSL。它们的符号是否通常用于指定编译器的语义/翻译?
例子:
数字用户线:
a = b = c = 4
翻译成:
Integer temp0 = 4;
Integer a = temp0;
Integer b = temp0;
Integer c = temp0;
提前致谢
杰伦
最佳答案
模式匹配语言可用于形式化小树转换。有关此类 DSL 的示例,请查看 Nanopass framework .一种更通用的方法是将树转换视为一种术语重写的形式。
这样的转换足够正式,例如,它们可以被证明,如 CompCert .
关于java - 编译器翻译代码的形式化符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22127067/