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.
- gcc 源码分析-序
- gcc 源码分析1
- boost::mpl::vector(GCC)源码分析
- gcc 源码分析-前端篇1
- gcc 源码分析-前端篇2
- gcc 源码分析-前端篇3
- GCC源码
- GCC源码分析(2):从C代码到GIMPLE
- GCC源码分析(一)——介绍与安装
- GCC源码分析(二)——前端
- GCC源码分析(三)——中间语言
- GCC源码分析(四)——优化
- GCC源码分析(五)——指令生成
- GCC源码分析(一)——介绍与安装
- GCC源码分析(二)——前端
- GCC源码分析(三)——中间语言
- GCC源码分析(四)——优化
- GCC源码分析(五)——指令生成
- 翻转字符串
- 黑马程序员-面向对象概述 构造函数与this关键字
- Libevent调用
- Andriod :ADB server didn't ACK
- 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
- gcc 源码分析-序
- Java通用程序设计与集合方法总结
- 浅谈程序员的职业规划
- 解决win7右下角音量控制图标、电池图标消失的脚本
- UVA 12529 Fix the Pond
- ZF 多模块配置
- 8.密码发生器
- 题目1084: 二叉树遍历
- 线程池ThreadPoolExecutor使用简介 (3)