| 本系列资料由"思达网校" 授权发布,任何网站不得转载,否则追究法律责任。
1. 基础知识 1.1. 基本概念 程序设计语言的定义涉及语法、语义和语用3个方面。 语法是指由程序语言的基本符号组成程序中的各个语法成分的一组规则。包括词法规则和语法规则。由形式语言进行描述。 语义是程序语言中按语法规则构成的各个语法成分的含义,可分为静态语义和动态语义。程序运行的效果反映了该程序的语义。 语用表示了构成语言的各个记号和使用者的关系,涉及符号的来源、使用和影响。
1.2. 程序设计语言的种类和特点 可分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言。 命令式程序设计语言是基于动作的语言,计算被看成动作的序列。如Pascal、C等。 面向对象的程序设计语言主要包括几个概念:对象、类和继承。如C++、Java等。 函数式程序设计语言是一类以λ-演算为基础的语言。最显著的特点是语言中程序和数据的形式是等价的。其代表是LISP语言。 逻辑程序设计语言是以形式逻辑为基础的语言。其代表是PROLOG。
1.3. 程序设计语言的基本成分 1.3.1. 数据成分 是程序语言的数据类型。数据是程序操作的对象。包括常量和变量、全局量和局部量。数据类型有基本类型(如整型、字符型等)、特殊类型(空类型)、构造类型(数组、结构、联合)、指针类型等。
1.3.2. 运算成分 运算成分指明允许使用的运算符号及运算规则。一般包括算术运算、关系运算、逻辑运算。
1.3.3. 控制成分 控制成分指明语言允许表述的控制结构。包括顺序结构、选择结构和循环结构。参见教材中讲述的C(C++)提动的控制语句。
1.3.4. 函数 函数是程序模块的主要成分,是一段具有独立功能的程序。函数的使用涉及3个概念:函数定义、函数声明和函数调用。函数调用时实参与形参之间交换信息的方法有传值调用和引用调用两种。
2. 语言处理程序基础 2.1. 汇编语言基本原理 2.1.1. 汇编语言 汇编语言是为特定的计算机或者计算机系统设计的面向机器的语言。 汇编语言中的语句可以分成两大类: 与机器指令相对应的可执行汇编语句; 汇编控制语句,即伪指令。
[NextPage]
2.1.2. 汇编程序 汇编程序的功能是将用汇编语言编写的源程序翻译成机器指令程序。 整个汇编程序工作通常要对源程序进行两次扫描才能完成。第一次扫描主要工作是定义符号的值。第二次扫描的目的则是产生目标程序。其中,可执行汇编语句被翻译成对应的二进制代码机器指令,而伪指令会根据伪指令记忆码调用伪指令表对应元素所规定的子程序入口。
2.2. 编译程序基本原理 编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序(汇编语言或者机器语言)。 编译程序的工作过程分为6个阶段:词法分析阶段、语法分析阶段、语义分析阶段、中间代码生成阶段、代码优化阶段和目标代码生成阶段。参见《程序员教程》的P278 图6-4。
2.3. 解释程序基本原理 解释程序是一种语言处理程序,它直接执行源程序或源程序的内部形式。它并不产生目标程序,这是它和编译程序的主要区别。 高级语言实现语言处理有4种方案: 源程序被直接解释执行。 先将源程序翻译成高级中间代码,然后再扫描和解释执行高级中间代码。 先将源程序转化成和机器代码十分接近的低级中间代码,再解释执行这种中间代码。 源程序被最终翻译成机器语言表示的目标程序。这类系统的目标程序执行效率最高。 翻译系统与解释系统比较: 翻译系统在执行速度上都优于建立在解释执行基础上的系统; 翻译系统的缺点是其复杂性高,这使得它的开发和维护费用都大; 解释系统比较简单,可移植性较好,适合于以交互方式执行程序; 解释系统缺点是执行速度慢; 纯粹的解释和纯粹的编译都是极端,因此一般是两种技术的结合,先将源程序编译形成中间代码,然后由解释器解释执行。 解释系统的结构可分成两个部分: 1) 包括通常的词法分析程序以及语法和语义分析程序,它的作用仍是把源程序翻译成中间代码。 2) 解释部分,用来对第一部分所产生的中间代码进行解释执行,完成真正的解释。
|