Compiler construction 如何截获编译器传递

Compiler construction 如何截获编译器传递,compiler-construction,programming-languages,cpu-architecture,computer-architecture,Compiler Construction,Programming Languages,Cpu Architecture,Computer Architecture,我想为一个新的架构做一个编译器。我不知道任务有多大。据我所知,Flex/Bison类工具可以自由地执行几个编译步骤 我的目标是拦截编译器的代码生成过程。那么,有没有免费的工具,我可以使用我的工作?大多数编译器都嵌入了所有不同的编译过程 我不确定LLVM是否正确,但我需要一个基本的小型简单编译器,将所有不同的步骤分开。我可能会从AST部分操作到代码生成部分 如果你对我可以使用的工具有任何想法,请建议。 < P>你不指定你感兴趣的语言,但是你可能想看或者想用一个简单的C编译器来工作。 < P>从Fl

我想为一个新的架构做一个编译器。我不知道任务有多大。据我所知,Flex/Bison类工具可以自由地执行几个编译步骤

我的目标是拦截编译器的代码生成过程。那么,有没有免费的工具,我可以使用我的工作?大多数编译器都嵌入了所有不同的编译过程

我不确定LLVM是否正确,但我需要一个基本的小型简单编译器,将所有不同的步骤分开。我可能会从AST部分操作到代码生成部分


如果你对我可以使用的工具有任何想法,请建议。

< P>你不指定你感兴趣的语言,但是你可能想看或者想用一个简单的C编译器来工作。

< P>从Flex/BySun开始,为一个新机器制作C++编译器当然是可能的,但是它会有很多工作。编译器中有很多语义分析代码,而flex或bison并没有涵盖这些代码

另一种选择是将gcc重新定位到新机器。但是gcc有点大,需要大量的研究来学习如何改变它。GCC的优点是在完成重定向之后,可以获得C/C++/java支持。
我认为@ChrisTodd对lcc的建议很好,因为有一本书解释了如何将lcc编译器重新定位到新机器上。重新定位lcc后,您将只能编译C程序。

最好是C/C++/Java。事实上,我想根据我的新架构并行化我的代码。我试图编译SUIF2(NCI Stanford),这是一个程序分析平台,但仍然无法在ubuntu上编译。我听说过TCC。你的方法可能是错误的,因为你想“并行化我的代码”,就像你在评论中说的那样。因为即使你找到了一个可以“拦截代码生成”的编译器,编译器的其余部分很可能仍然假设一个不适合你的执行模型和语义。如果你的编译模型是“flex/bison执行多个编译步骤”,您对编译器工作方式的理解可能不够透彻,因此无法成功完成更复杂的代码生成任务。我建议你去上一堂编译课。。。无论如何,这可能会给这个机会。如果你不能做到这一点,那就通读一本编译器,然后重新考虑你的问题。是的,我有知识差距。我是根据这篇文章(gnuu.org/2009/09/18/编写自己的玩具编译器)这样说的。Flex/Bison工具,用于某些步骤,如词法分析/解析。但在后端,很大一部分显然是在使用类似LLVM的工具对代码生成进行语法分析的过程中完成的。简而言之,我需要一个功能齐全的最小开源编译器,将最重要的步骤分开。这样我就可以集中精力在我该怎么做上了。