破解Open JDK - 发出LLVM汇编程序而不是Java字节码

时间:2011-06-17 16:52:38

标签: compiler-construction javac bytecode openjdk

我有机会在大学工作并帮助从OpenJDK中攻击javac。目标是读取自定义源代码(对于“我们的”编程语言与antlr结合使用)而不是写出Java字节码 - 编译器应该写出LLVM汇编代码。这将是我的任务,但是项目非常庞大,我不知道在哪里或如何开始了解那里发生了什么。我被告知尝试调试代码并逐步完成它但我想知道是否有任何好的文档在野外给我一个短暂的突破,以了解哪些部分是最重要的。< / p>

1 个答案:

答案 0 :(得分:2)

您将“myprogram.myprogrlang”导入“myprogram.llvm”。

我认为不需要使用/ hack javac。我想你想使用Java / openjdk的编译器工具,但我认为这只会让你的任务变得更加困难,而不是帮助你。

我的建议是使用antlr,了解如何使用您的编程语言解析程序,如何生成AST,然后将该AST数据转换为LLVM字节码或汇编程序。

在这种情况下你不需要java。

所以:

[1]学习编程语言的ANTLR语法/规则

[2]学习LLVM字节码/汇编程序

[3]了解如何将ANTLR数据输出转换为LLVM数据输入