【问题标题】:Writing a programming language: how to compile [closed]编写编程语言:如何编译 [关闭]
【发布时间】:2013-11-25 00:04:35
【问题描述】:

我正在编写一种简单的编程语言(在 Python 中,如果重要的话)来测试我的正则表达式解析技巧,我想出了一个问题:我的编译器是否应该将代码转换为 C++ 代码,然后使用 g++ 将其编译为 ELF可执行文件,还是我应该设法将我的语言代码编译成字节码(或其他任何东西)?

【问题讨论】:

  • 大多数编程语言都不能用普通的旧正则表达式解析。是的,这将考验你的技能;你可能会失败;问题是,你学到了什么?人们在做这种练习时反复吸取的教训是,编写“编译器”而不注意文献会导致糟糕的结果。而且,没有人会感到惊讶。

标签: compiler-construction programming-languages


【解决方案1】:

可以这样做。例如,C++ 的原始实现(“C with Classes”)将 C++ 代码转换为使用常规 C 编译器编译的 C 代码。当然,这不再是它的工作原理了。

您最好的选择是从 GCC 或 LLVM 开始,为您的语言编写一个新的前端,利用适用于众多架构的现有代码生成工具。

【讨论】:

    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2011-03-20
    • 2012-08-06
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多