【发布时间】:2014-08-02 06:26:19
【问题描述】:
我认为您可以使用其中一个内置工具直接将 LLVM 字节码转换为机器码,但根据SO post,您必须实际提供前端和后端。 LLVM 实际上只是一个应用优化的工具:
“LLVM 可以用作编译器框架,您可以在其中提供“前端”(解析器和词法分析器)和“后端”(将 LLVM 的表示转换为实际机器代码的代码)。”
所以我的问题是:是否有一个可以使用的框架,您只需将字节码编译器写入该框架的字节码语言,然后由框架编译成适当的机器码?
如果有,那么编写编译器似乎不会比编写字节码编译器(基本上是词法分析器/解析器和翻译)更复杂。我从未编写过编译器,但似乎您需要生成几种不同类型的汇编代码(基于不同的体系结构),然后将其组装以使其有用,但如果有一些中间框架可以做这个后端部分,那么这将花费大量的汗水。我认为 LLVM 做到了这一点,但我目前基于上述的理解是它没有。
对不起,如果这是一个愚蠢的问题,我只是对整个事情感到好奇,我对此了解不多。
【问题讨论】:
标签: compiler-construction llvm bytecode-manipulation