有很多词法分析器和解析器生成器- lex/flex和yacc/bison,jflex和javacup,gplex和gppg,等等。我想知道语言的官方开发人员使用什么工具- Sun和微软在开发Java和.NET时使用这些工具吗,或者这么大的公司只使用自定义的内部工具吗?
发布于 2010-07-23 11:12:03
我曾经接触过一些商业编译器,但我不知道有哪种编译器是基于lex或yacc生成器构建的。Lex和yacc对于快速获得语法和解析很方便,但这通常不是商业产品的最高优先级。我并不是说商业产品不能建立在yacc之上--我确信有些是这样的--但我参与过的商业编译器都是手工编写的代码,比其他任何东西都更有利于原始速度。
是的,编译编译器本身就是一种规范,也是makefile逻辑中一种Escher式的“有趣”冒险。;>
发布于 2010-07-23 09:55:46
我曾经听说过一个传说,大多数c编译器都是自己编译的。
它们所做的是编写新版本(示例版本5),使用旧版本(版本4)编译它,然后使用新编译的版本(使用版本4编译的版本5),再次编译自身。(因此,版本5现在由版本5编译)。
发布于 2010-07-23 10:52:48
JavaCC拥有最新的Java语法。Java编译器是否真的是通过JavaCC编写的则是另一个问题。
https://stackoverflow.com/questions/3314834
复制相似问题