目录
一、编译器概述
1.1、什么是编译器?
- 编译器是一个程序;
- 核心功能是把源代码翻译成目标代码;
- 源代码:C/C++,Java,C#,html,SOL,... ----> 目标代码:x86,IA64,ARM,MIPS,...
1.2、编译器的核心功能
1.3、编译器和解释器
解释器也是处理程序的一种程序
1.4、编译器简史
- 计算机科学史上出现的第一个编译器是Fortran语言的编译器,1954-1957年,John Backus。
- Fortran编译器的成功给计算机科学的发展产生巨大影响。
1.5、为什么要学习编译原理?
编译原理集中体现了计算机科学的很多核心思想:算法,数据结构,软件工程等;
编译器是其他领域的重要研究基础;
编译器本身就是非常重要的研究领域:新的语言设计、大型软件的构造和维护;
1.6、如何学好编译原理?
- 编译器设计是理论和实践高度结合的一个领域,在学习时处理好二者关系:
- 理论:深入学习掌握各种算法和数据结构;
- 实践:切实提高将理论应用于解决实际问题的能力;
二、编译器结构
2.1、编译器的高层结构
编译器具有非常模块化的高层结构;
编译器可看成多个阶段构成的“流水线”结构
2.2、一种没有优化的编译器结构
2.3、一种更复杂的编译器结构
2.4、小结
编译器由多个阶段组成,每个阶段都要处理不同的问题:使用不同的理论、数据结构和算法。
因此,编译器设计中的重要问题是如何合理的划分组织各个阶段:接口清晰;编译器容易实现、维护。
2.5、编译器实现
任务:编译程序1+2+3到栈式计算机