按构造方式分:基本类型和派生类型(主要参考C语言)
基本类型是void、char、int、float、double和枚举类型,以及其变种short、long、signed和unsigned。
派生类型包括指针、数组、函数、结构体(struct)和共用体(union)。其中,最后两种为用户类型。
程序语言中的控制结构为数据和数据上的运算组合成程序提供了基本框架,主要包括3种控制结构,即
顺序:
选择:if语句
重复:while语句
1.2 汇编语言:
汇编程序是为特定的计算机或者计算机系统设计的面向机器的语言。
汇编语言中的语句可以分成两大类:
与机器指令相对应的可执行汇编语句;
汇编控制语句,即伪指令。
伪指令并不翻译成机器指令,它的作用是控制汇编程序工作。
每条汇编语句被划分成4个区,依次是标号区、操作码区、操作数区和注解区。
例如:[标号] [操作码] [操作数] [注解]
用汇编语言编写的源程序,要通过汇编程序将它翻译成机器语言程序,才能被计算机执行。因此,汇编程序的功能就是将汇编语言所编写的源程序翻译成由机器指令和其他信息组成的目标程序。它的基本工作包括:
将每一条可执行汇编语句转换成对应的机器指令
处理源程序中出现的伪指令
整个汇编程序工作通常要对源程序进行两次扫描才能完成。第一次扫描主要工作是定义符号的值。第二次扫描的目的则是产生目标程序。其中,可执行汇编语句被翻译成对应的二进制代码机器指令,而伪指令会根据伪指令记忆码调用伪指令表对应元素所规定的子程序入口。
1.3 解释程序:
解释程序是一种语言处理程序,它直接执行源程序或源程序的内部形式。它并不产生目标程序,这是它和编译程序的主要区别。
高级语言实现语言处理有4种方案:
源程序被直接解释执行。
先将源程序翻译成高级中间代码,然后再扫描和解释执行高级中间代码。
先将源程序转化成和机器代码十分接近的低级中间代码,再解释执行这种中间代码。
源程序被最终翻译成机器语言表示的目标程序。这类系统的目标程序执行效率最高。
翻译系统与解释系统比较:
翻译系统在执行速度上都优于建立在解释执行基础上的系统;
翻译系统的缺点是其复杂性高,这使得它的开发和维护费用都大;
解释系统比较简单,可移植性较好,适合于以交互方式执行程序;
解释系统缺点是执行速度慢;
纯粹的解释和纯粹的编译都是极端,因此一般是两种技术的结合,先将源程序编译形成中间代码,然后由解释器解释执行。
解释系统的结构可分成两个部分。
1.包括通常的词法分析程序以及语法和语义分析程序,它的作用仍是把源程序翻译成中间代码,中间代码的设计常采用逆波兰(后缀)表示形式(符号在后面)。
2.解释部分,用来对第一部分所产生的中间代码进行解释执行,完成真正的解释。
2.4代码优化
优化是对程序进行等价(指不改变程序的运行结果)变换,经变换后的程序能生成更有效(运行时间更短、占用空间更小)的目标代码。
根据优化所涉及的程序范围,可分为局部优化、循环优化和全局优化三个不同的级别
编译原理重点难点归纳:
了解编译程序工作的大致过程,要清楚编译程序是如何生成的。请大家记忆并理解以下概念:编译程序,解释程序,翻译程序,扫描器,分析器,编译前端与后端,符号表。
要掌握的几个重量级概念:上下文无关文法,语法分析树和二义性,同时也引出了与此紧密联系的其它概念:推导,句型,句子,最左推导,最右推导等。