
《编译原理》课后习题解答
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
《编译原理》课后习题答案第一章 第 1 章引论 第 1 题 阐述下列术语: (1)编译程序 (2)源程序 (3)目标程序 (4)编译程序的前端 (5)后端 (6)遍 答案: (1) 编译程序:当源语言为高级语言,目标语言为特定计算机上的汇编语言或机器语言时,则称该翻译程序为编译程序。 (2) 源程序:用源语言编写的程序被称为源程序。 (3) 目标程序:用目标语言编写的程序被称为目标程序。 (4) 编译程序的前端:它由一系列阶段组成,这些阶段的工作主要依赖于源语言,并且与目标机无关。通常前端包括词法分析、语法分析、语义分析以及中间代码生成等阶段,某些优化工作也可能在前端进行,此外还包括与每个前端阶段相关的错误处理工作和符号表管理等任务。 (5) 后端:指那些依赖于目标机并一般不依赖源语言,仅与中间代码相关的阶段,主要包括目标代码生成以及相关的错误处理和符号表操作。 (6) 遍:是对源程序或其等价的中间语言程序从头到尾进行扫描并完成规定的任务的过程。 第 2 题 一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并绘制编译程序的总体结构图。 答案: 一个典型的编译程序通常包含八个组成部分,它们分别是词法分析器、语法分析器、语义分析器、中间代码生成器、中间代码优化器、目标代码生成器、表格管理器以及错误处理器。其各部分的主要功能如下:词法分析器:负责接收源程序输入,将源程序分解成单词(token),并对单词进行检查和分析,最终输出单词的机器码表示形式。语法分析器:负责检查源程序的语法结构是否正确,并输出相应的错误处理信息。语义分析器:负责进行语义检查和语义信息提取,并将分析结果存储在各类语义信息表中。中间代码生成器:根据语义分析器的结果,将语法单元转换成一种特定的中间代码形式(例如三元式或四元式)。中间代码优化器:为了产生高质量的目标代码,对中间代码进行等价变换处理以提高效率或减少资源消耗。目标代码生成器:将优化后的中间代码转换成目标机器码(汇编指令或机器指令)。表格管理器:负责建立、维护和查询各种表格数据。这些表格记录了源程序的各种信息以及编译各个阶段的进展情况;编译过程中的许多信息都从这些表格中读取而来,而产生的中间结果则记录在相应的表格中。“表格管理”并非一个独立的模块,而是指编译器自身具备的表格管理功能。“错误处理” 程序:负责处理和纠正源程序中存在的词法、语法和语义错误;当编译器发现源程序的错误时,该模块会报告出错位置及错误的性质,并尝试对发现的错误进行适当的校正(修复),以确保编译器能够继续向下进行解析和处理. 注意: 如果询问编译器有哪些主要构成成分,只需回答六部分即可.如果难以理解,则回答八部分. 第 3 题 何谓翻译程序、编译程序和解释程序的区别?它们之间存在何种关系?答案: 翻译程序是指将一种编程语言编写的代码转换成另一种编程语言形式的程序的软件工具,例如编译器和汇编器等. 编译程示是把用高级编程语言编写的源文件转换成与之等价的目标文件的翻译工具. 解释程示是能够直接解释执行高级编程语言源代码的软件工具. 解释方式通常有两种: 一种是完全由解释引擎承担实现整个语句的功能;另一种是一边翻译一边执行语句.无论哪种方式,解释程示都是一种将高级源代码转换为机器指令执行的方式.
全部评论 (0)


