编译原理作业集-第一章-修订版.docx

上传人:安*** 文档编号:18998547 上传时间:2022-06-03 格式:DOCX 页数:12 大小:16.96KB
返回 下载 相关 举报
编译原理作业集-第一章-修订版.docx_第1页
第1页 / 共12页
编译原理作业集-第一章-修订版.docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《编译原理作业集-第一章-修订版.docx》由会员分享,可在线阅读,更多相关《编译原理作业集-第一章-修订版.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、编译原理作业集-第一章-修订版文档视界编译原理作业集-第一章-修订版编译原理作业集-第一章-修订版第一章引论本章要点:1.正确理解什么是编译程序;2.了解编译程序工作的基本经过及各阶段的基本任务;3.熟悉编译程序的总体构造框图;4.了解编译程序的构造经过和构造工具。本章目的:1.把握本章的“编译程序、“穿插编译程序、“编译前端和编译后端等基本概念,并能在以后的学习熟练运用;2.把握T形图表示。本章重点:1.概念比拟:编译程序、解释程序;诊断编译程序、优化编译程序;穿插编译程序、可变目的编译程序;编译前端和编译后端;2.编译工作经过的五个阶段;3.编译程序总框;4.编译程序“移植。本章难点1.编

2、译程序“移植;作业题及参考答案一、单项选择题:根据组卷方案,至少8道小题1.假如一个编译程序能产生不同于其宿主机的机器代码,则称它为:。a.诊断编译程序b.优化编译程序c.穿插编译程序d.可变目的编译程序2.编译程序将高级语言程序翻译成。a.机器语言程序或高级语言程序b.汇编语言或机器语言程序c.汇编语言程序或高级语言程序d.中间语言程序或高级语言程序3.下面的四个选项中,_不是编译程序的组成部分。a.词法分析程序b.代码生成程序c.设备管理程序d.语法分析程序4.当代多数实用编译程序所产生的目的代码都是一种可重定位的指令代码,在运行前必须借助于一个把各个目的模块,包括系统提供的库模块连接在一

3、起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。a.重定位程序;b.解释程序;c.连接装配程序;d.诊断程序;5.从编译程序的角度讲,源程序中的错误通常分为两大类。a.词法错误和语法错误;b.语法错误和语义错误;c.编辑错误和诊断错误;d.词法错误和语义错误;6.下面对编译原理的有关概念正确描绘的是:。a.目的语言只能是机器语言b.编译程序处理的对象是源语言。c.Lex是语法分析自动生成器d.解释程序属于编译程序7.目的代码生成阶段所生成的目的代码的形式不可能是。a.绝对指令代码b.可充定位的指令代码。c.汇编指令代码d.三地址代码8.语

4、义错误是指源程序中不符合语义规则的错误,不包括:a.非法字符错误b.类型不一致错误。c.作用域错误d.讲明错误一答案:1.c;2.b;3.c;4.c;5.b;6.d;7.d;8.a;二、填空题:根据组卷方案,至少8道小题1我们有时把编译程序划分为编译前端和编译后端。前端主要由和有关但和无关的那些部分组成。2对编译程序而言,输入数据是;输出数据是。3.编译后端通常不依靠于源语言而仅仅依靠于。4.假如不需改写编译程序中和机器无关的部分就能够把编译程序移植到另外一个目的机上,则称该编译程序是。5.描绘程序设计语言词法的有效工具是。6.编译经过的每一个阶段都能检测出错误,其中,绝大多数错误在_阶段检测

5、出来的。7.为了使编译后的Java程序从一个平台移到另外一个平台上执行,Java定义了一种称为ByteCode的虚拟机代码。只要实际使用的操作平台上实现了执行ByteCode的Java解释器,这个操作平台就能够执行各种Java程序。这就是所谓Java语言的。8.在一个程序设计环境中,起着中心作用。连接程序、调试程序、程序分析等工具的工作直接依靠于它所产生的结果。二答案:1.源程序,目的机;2.源程序,目的程序;3.中间语言;4.可变目的编译程序;5.正规式和有限自动机;6.词法分析、语法分析和语义分析;7.操作平台无关性;8.编译程序。三、判定题:根据组卷方案,至少8道小题1.在编译经过中,既

6、能够将几个不同的阶段合为一遍,可以以把一个阶段的工作分为若干遍。2.编译程序生成的目的程序都是可执行的程序。3.编译前端主要由和源语言和目的机相关的那些部分组成。4.优化的任务在于对前端编译所产生的中间代码进行加工和变换,以其能产生运行结果更为准确的目的代码。5.为了让编译程序可改变目的机,通常需要一种良好定义的中间语言支持。6.汇编器将高级语言程序翻译成汇编语言程序。7.很多编译程序在识别出语法单位后并不真正构造语法树。8.取编译程序前端改写其后端以生成不同机器上的目的代码,目前技术上还难以实现。三答案1.;2.;3.;4.;5.;6.;7.;8.;四、名词解释:、根据组卷方案,至少3道小题

7、1.诊断编译程序、优化编译程序;2.穿插编译程序、可变目的编译程序;3.编译程序的“遍4.程序设计环境四答案:1.诊断编译程序:专门用于帮助程序开发和调试的编译程序。优化编译程序:着重于提高目的代码效率的编译程序。2.穿插编译程序:能产生不同于其宿主机的机器代码的编译程序。可变目的编译程序:不需重写编译程序中和机器无关的部分就能改变目的机的编译程序。3.编译程序的“遍:就是对源程序或者中间结果从头到尾的一次扫描,并做有关的加工处理,生成新的中间结果或者目的程序。4.程序设计环境:支持程序设计人员进行程序设计开发所需要的如编辑程序、编译程序、连接程序和调试程序等软件工具,一起构成程序设计环境。五

8、、简答题:根据组卷方案,至少3道小题1.什么是编译程序的“遍?2.什么编译程序、解释程序?编译程序和解释程序有什么区别?3.前端编译和后端编译是怎样划分的?4.什么是标识符,什么是名字,它们的区别是什么?5.假如机器A上已有一个用A机器代码实现的某高级语言L1的编译程序,则能够用L1编写另一种高级语言L2的编译程序,画出这个实现经过的T形图表示。6.怎样采用“移植的办法,利用A机器上已有的高级语言L编写能够在B机器上运行的高级语言L的编译程序?画出T形图表示。五答案:1.编译程序的“遍,就是对源程序或者中间结果从头到尾的一次扫描,并做有关的加工处理,生成新的中间结果或者目的程序。既能够将几个不

9、同阶段合为一遍,可以以把一个阶段的工作分为若干遍。当一遍中包含若干阶段时,各阶段的工作是穿插进行的。一个编译程序究竟应分为几遍、怎样划分,是和源语言、设计要求、硬件设备等诸因素有关的,难以统一规定。2.编译程序:把某一种高级语言源程序转换成汇编语言程序或机器语言程序的程序。解释程序:对高级语言源程序并不生成汇编程序或机器语言程序,而是边解释边执行的程序。编译程序把源语言程序翻译成目的代码,然后由操作系统加载执行;而解释程序则是边翻译边执行,不生成目的代码。3.前端编译和后端编译是怎样划分的?根据编译器的工作是和源语言相关还是目的机器有关来进行划分。编译前端:编译程序中包括词法分析、语法分析、语

10、义分析和中间代码产生等主要和源语言程序有关但和目的机无关的那些部分叫编译前端。编译后端:编译程序中包括目的代码生成、目的代码优化等和目的机有关而和源语言无关的那些部分部分叫编译后端。4.标识符是由字母或数字以及某些特殊符号因不同的高级语言而不同组成的,但是必须以字母开始的一个字符串。当给某标识符以确切的含义时,这个标识符就叫做名字。程序语言中的各种名字都是用标识符表示的。名字和标识符具有一样的形式,名字使用标识符来描绘,但标识符是没有意义的字符序列,而名字却有确切的意义和属性即类型和作用域。5.L1语言L2语言A代码A代码L2语言A代码A代码L1语言A代码6.L语言L语言B代码B代码L语言B代码L语言L语言B代码A代码L语言B代码A代码L语言A代码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 培训材料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁