“官方”语言开发人员使用哪些编译工具?

时间:2010-07-23 01:52:05

标签: c# java compiler-construction compilation

有很多词法分析器和解析器生成器 - lex / flex和yacc / bison,jflex和javacup,gplex和gppg等等。我想知道官方语言开发人员使用什么工具 - 做Sun和Microsoft在开发Java和.NET时使用其中任何一种,或者那些大小的商店只使用自定义内部工具吗?

4 个答案:

答案 0 :(得分:5)

我曾经听过一个传说,大多数c编译器都是自己编译的。

他们做的是他们编写新版本(示例版本5),使用旧版本(版本4)编译它,然后使用新编译的版本(使用版本4编译的版本5),他们自己编译再次。 (因此版本5现在由版本5编译)。

答案 1 :(得分:3)

我一直在一些商业编译器中,我不知道任何基于lex或yacc生成器的构建器。 Lex和yacc可以很方便地获得语法和解析速度,但这通常不是商业产品的最高优先级。我并不是说商业产品不能建立在yacc上 - 我确信有些产品已经存在 - 但我所参与的商业编译器都是手工制作的代码,而不仅仅是原始速度。

是的,编译编译器本身就是常态,并且是makefile逻辑中一个“有趣”的Escher-esque冒险。 ;>

答案 2 :(得分:0)

JavaCC具有最新的Java语法。 Java编译器是否实际通过JavaCC编写是另一个问题。

答案 3 :(得分:0)

对于更通用的编译器,请参阅D Thorpe的答案。他们通常不这样做。

然而,这些工具通常会将C编译器定期重新定位到新制作的目标(*),并使用特定目标扩展,以安全,一致的方式快速插入新功能,然后运行一些验证套件以确保结果是合规的。

(*)想想新的DSP,微控制器等。