如何开始为目标平台生成本机代码?我有(一些)经验和(一些)C ++技能,并且有兴趣去编写我自己的编译器(用于C ++)。但是我不明白我将如何将最终结果转换为本机代码以在我的目标平台上执行,目前该平台只是Windows,x86。
我看过LLVM,但无法理解他们的shiz文档。
编辑:此外,LLVM不会在VS2010上构建。我经历了清理他们显然添加的所有地方。在文件名的末尾以获得乐趣,并修复了typedef,现在他们有一些奇怪的.def文件似乎完全不必要,无法编译,我不知道他们被称为万亿标题中的哪一个。
更多编辑: 我已经构建/构建了自己的AST /解析器/词法分析器。我只需要知道如何将结果转换为原生。
答案 0 :(得分:3)
查看编写编译器的其他一些问题,例如learning-to-write-a-compiler,并通过龙书或Programming Language Pragmatics之类的工作,您将充分理解LLVM或gnu闪电的使用他们作为你的后端。
除非你有几年的时间专门用于练习,否则不要尝试编写C ++编译器;另一方面,基于现有的后端和表达模板创建内容可能只需要几个月。