在LLVM tutorials中有说明如何编写简单的JIT编译器。不幸的是,本教程中的词法分析器和解析器是手动编写的。我在想,这样的解决方案对于学习目的是有好处的,但它不适合编写复杂的,即时编译的编译器。看来GCC和其他几个“大编译器”是手写的。但我认为,所有这些解析器生成器在编写自己的编译器时都会有很大的提升(特别是当你独自一人做,没有团队的时候)。LLVM JIT解析器用Bison/Antlr/Packrat/Elkhound编写/
是否有可能使用任何现有的解析器生成器,如Bison/Antlr/Packrat/Elkhound等与LLVM一起创建JIT编译器?我希望能够通过表达式不断地(不是一次)“解析”解析器,并在运行时编译它们。
其他我发现了很多关于“最好,现代”解析器生成器的问题(比如这个:https://stackoverflow.com/questions/428892/what-parser-generator-do-you-recommend)。如果可以使用这些工具来创建LLVM JIT编译器,那么我会很感激任何额外的提示和推荐,在这种特殊情况下,哪种工具在性能和灵活性方面最好。
“这样的解决方案对于学习目的很好,但不适合编写复杂的生产编译器” - 嗯。我一直认为GCC是一个复杂且适合生产的编译器。无论如何... – 2013-02-06 18:30:49
海湾合作委员会一开始就使用野牛,但你是对的 - 我正在修复它在我的问题。但是真的,如果可能的话,我很乐意使用一个生成器来简化这个任务。 –
如果有的话,我会说相反的是:yacc,Bison等适用于学习等目的,但对于严肃的生产工作,手写解析器可能是满足需求的唯一途径。 –