如何开始为目标平台生成 native 代码?我在 C++ 方面有(一些)经验和(一些)技能,并且有兴趣编写自己的编译器(针对 C++)。但我不知道如何将最终结果转换为 native 代码以在我的目标平台上执行,目前目标平台只是 Windows、x86。
我看过 LLVM,但无法理解他们的 shiz 文档。
编辑:此外,LLVM 不会构建在 VS2010 上。我检查并清理了他们显然在文件名末尾添加 .in 的所有地方,并修复了 typedef,现在他们有一些奇怪的 .def 文件,这些文件似乎完全没有必要,无法编译,而且我不知道它们是从万亿个 header 中的哪里调用的。
更多编辑: 我已经在构建/构建我自己的 AST/解析器/词法分析器。我只需要知道如何将结果转换为原生结果。
最佳答案
看看其他一些关于编写编译器的问题,比如learning-to-write-a-compiler ,并完成了类似《龙之书》或Programming Language Pragmatics之类的内容。 ,您将充分了解 LLVM 或 gnu lighting,以便将它们用作后端。
不要尝试编写 C++ 编译器,除非您有几年的时间致力于这项工作;另一方面,基于现有后端和表达式模板创建某些内容可能只需要几个月的时间。
关于c++ - 发出 native 代码(针对特定平台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100311/