【问题标题】:Compiler framework written in C++ for higher-order, dynamic, functional languages用 C++ 编写的用于高阶、动态、函数式语言的编译器框架
【发布时间】:2023-03-27 12:47:02
【问题描述】:

有许多编译器框架可以帮助实现一种语言的后端(例如 LLVM)。然而,似乎缺乏用 C++ 编写的“中间端”,它们可以代表高阶、动态、函数式语言。该框架应该做一些通用的事情,比如 lambda 提升、闭包转换、类型推断等,并帮助其他语言特定的转换,比如翻译类型类等。我能想到的一些候选者是 PyPyClean。这些是用于高阶、动态、函数式语言的编译器。可以说,可以将任何语言的前端连接到这些,并重新使用其中可用的数据结构和转换来完成中端工作。但是,它们分别在 Python 和 Clean 中实现。是否有 C++ 中实现上述目的的框架?

【问题讨论】:

  • 普遍认为这样的编译器可以毫不费力地用高阶、动态、函数式语言编写:)
  • 同意。那么有没有这种通用的中间端,不依赖于现有的语言?

标签: compiler-construction frameworks functional-programming


【解决方案1】:

但是,似乎缺乏用 C++ 编写的“中间端”,它们可以代表高阶、动态、函数式语言。该框架应该做一些通用的事情,比如 lambda 提升、闭包转换、类型推断等,并帮助其他语言特定的转换,比如翻译类型类等。

用一种没有构造函数模式匹配或代数数据类型的语言编写一个编译器中间端——本质上是一个用于符号操作和转换代数数据类型的引擎——确实是一个非常奇怪的选择。

函数式语言的编译器/总是/用函数式语言编写。通常是打字的。这些语言非常适合这项任务。

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 2010-09-16
    • 2019-10-09
    • 2011-03-20
    • 2011-10-22
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多