我如何拦截编译器传递

时间:2012-12-18 02:46:09

标签: compiler-construction programming-languages cpu-architecture computer-architecture

我想为新架构制作一个编译器。我不确定它有多大任务。据我所知,Flex / Bison类工具可以自由地完成几个编译步骤。

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

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

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

2 个答案:

答案 0 :(得分:1)

您没有指定您感兴趣的语言,但如果您想要使用简单的C编译器,则可能需要查看tcclcc

答案 1 :(得分:0)

从flex / bison开始为新机器制作C ++编译器当然是可行的,但这将是很多工作。编译器中有许多语义分析代码,不包含在flex或bison中。

另一种选择是将gcc重新定位到新机器上。但是gcc有点大,需要大量的研究来学习如何改变它。 gcc的优势在于,在完成重定向后,您将获得c / c ++ / java支持。

我认为@ChrisTodd对lcc的建议很好,因为有一本书解释了如何将lcc编译器重新定位到新机器上。重新定位lcc后,您将只能编译C程序。