有许多编译器框架可以帮助实现一种语言的后端(例如。LLVM)。然而,似乎缺少用C++编写的“中间端”,它们可以表示高阶的、动态的、函数式语言。框架应该做一些泛型的事情,比如lambda提升,闭包转换,类型推断等,并帮助进行其他语言特定的转换,比如翻译类型类等。我能想到的一些候选是PyPy和Clean。它们是针对高阶、动态、函数式语言的编译器。可以说,人们可以将任何语言的前端连接到这些前端,并重用它们中可用的数据结构和转换来完成中间端工作。但是,它们分别在Python和Clean中实现。有没有用C++实现的用于上述目的的框架?
发布于 2013-02-24 21:05:48
然而,似乎缺少用C++编写的“中间端”,并且可以表示高阶的、动态的、函数式语言。框架应该做一些泛型的事情,比如lambda提升、闭包转换、类型推断等,并帮助进行其他语言特定的转换,比如翻译类型类等。
用一种没有构造器模式匹配或代数数据类型的语言编写编译器中间端--本质上是一个用于符号操作和代数数据类型转换的引擎--确实是一个非常奇怪的选择。
函数式语言的编译器是/总是/用函数式语言编写的。通常是打字的。这些语言非常非常适合这项任务。
https://stackoverflow.com/questions/5543751
复制相似问题