gcc 源码分析-序

来源:互联网 发布:linux 修改帐号密码 编辑:程序博客网 时间:2024/06/05 20:28

市面上讲述编译原理的书籍比较多,但基本上都是以理论为主,即使谈到适用的技术,也都是泛泛而谈,我这里就开一个头,来探讨一下编译器的具体实现方式,我以大名鼎鼎的gcc编译器为基础,聊一聊它的具体实现。

gcc编译器版本比较多,最新的大概已到了4.7, 如果以最新的来分析,第一个问题,代码太多,看起来比较痛苦;第二,中间可能要夹杂太多的边缘东西,为了降低难度,我将以gcc1.40版为主。

要分析gcc的源码,首要条件就是要编译通过,但是这个代码年代已久,很难在现代的开发环境中编译通过。欣喜地是,通过我的艰苦努力,居然在vc6上编译通过了,这样为其分析代码创造了很好的条件。

大凡看到gcc代码的都知道,gcc的词法分析采用的手动方式,语法分析用的是bison工具。我在用vc6编译过程中并没有完全按照gcc1.40的代码方式,词法分析我尝试用flex工具来分析。其他部分基本上采用的gcc1.40的代码。

为什么用vc6编译,因为vc6调试跟踪非常方便,目前在windows上没有找到一款GUI调试跟踪能比vc6好用的,这为分析其代码提供了很好的条件。

这个工作我也刚刚开始,所以这个更新比较慢,什么时候能完,目前没有计划!

要看懂gcc代码,我将首先从flex,bison两个工具谈起!

下一节首先谈谈flex.