31.2高级语言翻峄糸统 1.什么是高级语言翻峄糸统 高级语言翻译系统是将用高级语言书写的源程序 翻译成等价的机器语言程序或汇编程序的处理系 统,也称为编译程序(或编译系统)。 它以高级语言书写的程序(称为源程序)作为输 入,以机器语言或汇编语言表示的程序(称为目 标程序)作为输出,它的任务是产生一个可在具 体计算机上执行的目标程序
3.1.2 高级语言翻译系统 1.什么是高级语言翻译系统 ◼ 高级语言翻译系统是将用高级语言书写的源程序 翻译成等价的机器语言程序或汇编程序的处理系 统,也称为编译程序(或编译系统)。 ◼ 它以高级语言书写的程序(称为源程序)作为输 入,以机器语言或汇编语言表示的程序(称为目 标程序)作为输出,它的任务是产生一个可在具 体计算机上执行的目标程序
多数高级程序设计语言(如C、 PASCAL、 FORTRAN等)都是采用编译的方式,也 有一些程序设计语言(如 BASIC等)采用 解释的方式。由于源程序中的每一个语句 与目标程序中的指令通常是一对多的关系 因而编译程序的实现算法比较复杂
◼ 多数高级程序设计语言(如C、PASCAL、 FORTRAN等)都是采用编译的方式,也 有一些程序设计语言(如BASIC等)采用 解释的方式。由于源程序中的每一个语句 与目标程序中的指令通常是一对多的关系, 因而编译程序的实现算法比较复杂
编译程序的结构 为了便于理解编译程序的整体结构和工作过程,可以 把编译程序比喻为一个“信息加工流水线”,其加工 的“原材料”是源程序,“最终产”是旦标程序 作为输入,经过该道“工序”的加工后再输出作为下 道工序”的输入,直至最后得到最终产品分 目标程序。 编译程序从机构与工作过程如图3-2所示
2.编译程序的结构 为了便于理解编译程序的整体结构和工作过程,可以 把编译程序比喻为一个“信息加工流水线”,其加工 的“原材料”是源程序,“最终产品”是目标程序, 每一道“工序”则以上一道“工序”得到的“半成品” 作为输入,经过该道“工序”的加工后再输出作为下 一道“工序”的输入,直至最后得到“最终产品”— —目标程序。 ◼ 编译程序从机构与工作过程如图3-2所示
源程序 表格管理 词法分析 出错处理 语法分析 中间代码生成 优化 目标代码生成 图3-2编译程序的结构与工作过程
源程序 表 格 管 理 词法分析 语法分析 中间代码生成 优 化 目标代码生成 出 错 处 理 图3-2 编译程序的结构与工作过程
其中各模块的功能如下 词法分析:又称为扫描器,它的功能是扫描以字符串形式输入的源程序, 识别出一个个的单词并将其转换为机内表示形式。 语法分析:又称为分析器,它的功能是对单词进行分析,按照语法规则 分析出一个个的语法单位,如表达式、语句、程序等。 中间代码生成:它的功能是将语法单位转换为某种中间代码,如四元式、 三元式、逆波兰式等。 优化:它负责对中间代码进行优化,使得生成的目标代码在运行速度、 存储空间方面具有较高的质量。 目标代码生成:它的功能式将优化后的中间代码转换为目标程序
其中各模块的功能如下: ◼ 词法分析:又称为扫描器,它的功能是扫描以字符串形式输入的源程序, 识别出一个个的单词并将其转换为机内表示形式。 ◼ 语法分析:又称为分析器,它的功能是对单词进行分析,按照语法规则 分析出一个个的语法单位,如表达式、语句、程序等。 ◼ 中间代码生成:它的功能是将语法单位转换为某种中间代码,如四元式、 三元式、逆波兰式等。 ◼ 优化:它负责对中间代码进行优化,使得生成的目标代码在运行速度、 存储空间方面具有较高的质量。 ◼ 目标代码生成:它的功能式将优化后的中间代码转换为目标程序