编译原理及实践冯博琴冯岚教程中文版课后答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理及实践冯博琴冯岚教程中文版课后答案
解释术语:
1.翻译程序:是一种系统程序,它将计算机编程语言编写的程序翻译成另外一种计算机语言的一般来说等价的程序,主要包括编译程序和解释程序,汇编程序也被认为是翻译程序。编译程序:也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
2.解释程序:是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
源程序:也称源代码,是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是
将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
3.目标程序:又称为“目的程序”,是源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名----由语言处理程序(汇编程序,编译程序,解释程序)将源程序处理(汇编,编译,解释)成与之等价的由机器码构成的,计算机能够直接运行的程序,该程序叫目标程序。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。
遍:把对源程序或其等价的中间表示形式从头到尾扫描并完成规定任务的过程。
4.前端:编译前端包括词法分析,语法分析,语义分析和中间代码生成,以及部分代码优化工作,是对源程序进行分析的过程,它主要与源语言有关,与目标机无关,主要根据源语言的定义静态分析源程序的结构,以检查是否符合语言的规定,确定原源程序所表示的对象和规定的操作,并以某种中间形式表示出来。
5.后端:编译后端包括部分代码优化和目标代码生成,是对分析过程的综合,与源语言无关,依赖于中国语言和目标机,主要是根据分析的结果构造出目标程序。
6.高级语言程序有哪两种执行方式?阐述其主要异同点。描述编译方式执行程序的过程。
答:高级语言程序的两种执行方式是:解释方式和编译方式。解释方式:利用解释程序直接读取高级语言程序中的每个语句,翻译并直接执行
编译方式:利用编译程序将高级语言程序翻译为机器语言程序,然后再运行这个机器语言程序。在你所使用的C语言编译器中,观察程序1.1经过预处理、编译、汇编、链接四个过程生成的中间结果。
7.编译程序有哪些主要构成成分?各自的主要功能是什么?
答:词法分析器(Scanner,又称扫描器)的功能是读人源程序,进行词法分析,输出单词记号。
语法分析器(Parser,又称解析器)的功能是对单词记号串进行语法分析,识别出各类语法单位,最终判断输入串是否构成语法上正确的程序。
语义分析器(Semantic Analyzer)的功能是将各种符号的必要信息填入符号表,并按照
语义规则对语法分析器识别出的语法单位进行静态语义检查。
中间代码生成器(Intermediate Code Generator)的功能是将语法分析器识别出的各语法单位翻译成一定形式的中间
代码。
代码优化器(Optimizer)的功能是对生成的中间代码进行优化处理。
目标代码生成器(Target Code Generator)的功能是把中间代码或优化后的中间代码翻译为目标代码。如果没有优化器,目标代码生成器也可以从识别出的语法单位直接生成目标代码。