logo

您所在位置网站首页 > 海量文档  > 教学课件 > 大学试卷

南京信息工程大学滨江学院林美华《编译原理》期末复习完整版整理.pdf 30页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
特别说明: 下载前务必先预览,自己验证一下是不是你要下载的文档。
  • 上传作者 wdsh0906(上传创作收益人)
  • 发布时间:2017-08-22
  • 需要金币100(10金币=人民币1元)
  • 浏览人气
  • 下载次数
  • 收藏次数
  • 文件大小:1.79 MB
下载过该文档的会员
你可能关注的文档:
考试题型:20 分选择题,80 分简答设计。 考试内容:第三章零碎知识点多,第四章一个大题,第五章一个大题,第六章一个大 题。考试题目均来自书本的例题、以及上课讲过的课后习题。 书后习题答案 (讲过的部分): 第一章 (只讲过第4 题,其他防止出选择): 1. 解释下列术语:编译程序,源程序,目标程序,编译程序的前端,后端和遍。 答:编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言, 则此翻译程序称为编译程序。 源程序:源语言编写的程序称为源程序。 目标程序:目标语言书写的程序称为目标程序。 编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标 机无关。通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶段,某些优化 工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符号表管理等工作。 后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目 标代码生成,以及相关出错处理和符号表操作。 遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。 2. 一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程 序的总体结构图。 答:一个典型的编译程序通常包含 8 个组成部分,它们是:词法分析程序、语法分析程序、 语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序 和错误处理程序。其各部分的主要功能简述如下: 词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。 语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。 语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表 中。 中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式 的中间语言代码,如三元式或四元式。 中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。 目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。 表格管理程序:负责建立、填写和查找等一系列表格工作。表格的作用是记录源程序的 各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从表格中读取,产生的 中间结果都记录在相应的表格中。可以说整个编译过程就是造表、查表的工作过程。需要指 出的是,这里的“表格管理程序”并不意味着它就是一个独立的表格管理模块,而是指编译 1 程序具有的表格管理功能。 错误处理程序:处理和校正源程序中存在的词法、语法和语义错误。当编译程序发现 源程序中的错误时,错误处理程序负责报告出错的位置和错误性质等信息,同时对发现的 错误进行适当的校正(修复),目的是使编译程序能够继续向下进行分析和处理。 源程序 目标程序 注意:如果问编译程序有哪些主要构成成分,只要回答六部分就可以。如果搞不清楚, 就回答八部分。 3. 何谓翻译程序、编译程序和解释程序?它们三者之间有何种关系? 答:翻译程序是指将用某种语言编写的程序转换成另一种语言形式的程序的程序,如编译程 序和汇编程序等。 编译程序是把用高级语言编写的源程序转换(加工)成与之等价的另一种用低级语言编 写的目标程序的翻译程序。 解释程序是解释、执行高级语言源程序的程序。解释方式一般分为两种:一种方式是, 源程序功能的实现完全由解释程序承担和完成,即每读出源程序的一条语句的第一个单词, 则依据这个单词把控制转移到实现这条语句功能的程序部分,该部分负责完成这条语句的功 能的实现,完成后返回到解释程序的总控部分再读人下一条语句继续进行解释、执行,如此 反复;另一种方式是,一边翻译一边执行,即每读出源程序的一条语句,解释程序就将其翻 译成一段机器指令并执行之,然后再读人下一条语句继续进行解释、执行,如此反复。无论 是哪种方式,其加工结果都是源程序的执行结果。目前很多解释程序采取上述两种方式的综 合实现方案,即先把源程序翻译成较容易解释执行的某种中间代码程序,然后集中解释执行 中间代码程序,最后得到运行结果。 广义上讲,编译程序和解释程序都属于翻译程序,但它们的翻译方式不同,解释程序是 边翻译(解释)边执行,不产生目标代码,输出源程序的

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

©2010-2013 max.book118.com在线文档投稿赚钱网. All Rights Reserved 蜀ICP备08101938号