Compiler construction 单通道编译器仍然存在吗?

Compiler construction 单通道编译器仍然存在吗?,compiler-construction,compilation,compiler-optimization,Compiler Construction,Compilation,Compiler Optimization,据统计,GCC 2.95在过去有大约24种不同的通行证 看一下,LLVM有大约100个不同的过程 有没有现在使用的编译器(可能在嵌入式环境中)可以在一个过程中完成所有代码生成的解析?微小的C文档说,这是一个过程:。有几个单过程Cobol编译器。RM Cobol当然是其中之一,如果它仍然存在于任何地方,ACE Cobol也是。Cobol是一个很好的单过程编译器的候选者,因为它主要是将运行时库调用连接在一起,在编译过程中很少有优化的余地。我相信ACU Cobol也是一个通行证,但我愿意纠正。好吧,F

据统计,GCC 2.95在过去有大约24种不同的通行证

看一下,LLVM有大约100个不同的过程


有没有现在使用的编译器(可能在嵌入式环境中)可以在一个过程中完成所有代码生成的解析?

微小的C文档说,这是一个过程:。

有几个单过程Cobol编译器。RM Cobol当然是其中之一,如果它仍然存在于任何地方,ACE Cobol也是。Cobol是一个很好的单过程编译器的候选者,因为它主要是将运行时库调用连接在一起,在编译过程中很少有优化的余地。我相信ACU Cobol也是一个通行证,但我愿意纠正。

好吧,Fabrice Bellard的TCC是一个有趣的野兽,但我不确定它在行业中使用得多-我们在尝试瞄准它时很有趣,因为它部分支持C99、64位体系结构等。虽然这是一个有效的答案,但我还是想了解其他的答案。我认为定义一个通行证已经相当困难了:只计算那些被读取的时间的数量。如果中间演示文稿被写入磁盘(对于我来说,是历史上最有用的定义),则仅将编译步骤计算为通过?还是每次中间的演讲都是完整的?那么,如何计算中间演示文稿的部分行走?如何计算由于WPO导致的额外编译?是的,这本身就是一个合理的问题。TCC似乎不使用任何中间表示,而使用值寄存器。我通常认为传递是AST转换(要么在现有AST中进行节点交换,要么将AST转换为另一个完全不同的AST,例如SSA)。我想说,编译器中的传递次数是指源程序的完整遍历次数:输入文本、解析树、RTL等等。。。传说IBM有一个编译器项目,上面有N个人,它有N个过程,其中N是36。放松点,LLVM实际上并没有为每个函数或模块运行它的所有数百个过程。@SK logic我其实不担心什么:)这是一个纯粹出于好奇的问题。