编译原理习题和答案市公开课一等奖百校联赛获奖课件.pptx
《编译原理习题和答案市公开课一等奖百校联赛获奖课件.pptx》由会员分享,可在线阅读,更多相关《编译原理习题和答案市公开课一等奖百校联赛获奖课件.pptx(274页珍藏版)》请在咨信网上搜索。
1、1 1编译原理教程编译原理教程习题解析习题解析第一章第一章 绪绪 论论第二章第二章 词词 法法 分分 析析第三章第三章 语语 法法 分分 析析第1页2 2编译原理教程编译原理教程习题解析习题解析第一章绪论1.1完成以下选择题:(1)下面叙述中正确是。A编译程序是将高级语言程序翻译成等价机器语言程序程序B机器语言因其使用过于困难,所以现在计算机根本不使用机器语言C汇编语言是计算机唯一能够直接识别并接收语言D高级语言靠近人们自然语言,但其依赖详细机器特征是无法改变第2页3 3编译原理教程编译原理教程习题解析习题解析(2)将编译过程分成若干“遍”是为了。A提升程序执行效率B使程序结构愈加清楚C利用有
2、限机器内存并提升机器执行效率D利用有限机器内存但降低了机器执行效率(3)结构编译程序应掌握。A源程序B目口号言C编译方法DAC项第3页4 4编译原理教程编译原理教程习题解析习题解析(4)编译程序绝大多数时间花在上。A犯错处理B词法分析B目标代码生成 D表格管理(5)编译程序是对。A汇编程序翻译B高级语言程序解释执行C机器语言执行D高级语言翻译第4页5 5编译原理教程编译原理教程习题解析习题解析【解答】(1)编译程序能够将用高级语言编写源程序转换成与之在逻辑上等价目标程序,而目标程序能够是汇编语言程序或机器语言程序。故选A。(2)分多遍完成编译过程可使整个编译程序逻辑结构愈加清楚。故选B。(3)
3、结构编译程序应掌握源程序、目口号言和编译方法这三方面内容。故选D。第5页6 6编译原理教程编译原理教程习题解析习题解析(4)编译各阶段工作都包括到结构、查找或更新相关表格,即编译过程绝大部分时间都用在造表、查表和更新表格事务上。故选D。(5)由(1)可知,编译程序实际上实现了对高级语言程序翻译。故选D。第6页7 7编译原理教程编译原理教程习题解析习题解析1.2计算机执行用高级语言编写程序有哪些路径?它们之间主要区分是什么?【解答】计算机执行用高级语言编写程序主要有两种路径:解释和编译。在解释方式下,翻译程序事先并不采取将高级语言程序全部翻译成机器代码程序,然后执行这个机器代码程序方法,而是每读
4、入一条源程序语句,就将其解释(翻译)成对应其功效机器代码语句串并执行,然后再读入下一条源程序语句并解释执行,而所翻译机器代码语句串在该语句执行后并不保留。这种方法是按源程序中语句动态执行次序逐句解释(翻译)执行,假如一语句处于一循环体中,则每次循环执行到该语句时,都要将其翻译成机器代码后再执行。第7页8 8编译原理教程编译原理教程习题解析习题解析在编译方式下,高级语言程序执行是分两步进行:第一步首先将高级语言程序全部翻译成机器代码程序,第二步才是执行这个机器代码程序。所以,编译对源程序处理是先翻译,后执行。从执行速度上看,编译型高级语言比解释型高级语言要快,但解释方式下人机界面比编译型好,便于
5、程序调试。这两种路径主要区分在于:解释方式下不生成目标代码程序,而编译方式下生成目标代码程序。第8页9 9编译原理教程编译原理教程习题解析习题解析1.3请画出编译程序总框图。假如你是一个编译程序总设计师,设计编译程序时应该考虑哪些问题?【解答】编译程序总框图如图1-1所表示。作为一个编译程序总设计师,首先要深刻了解被编译源语言其语法及语义;其次,要充分掌握目标指令功效及特点,假如目口号言是机器指令,还要搞清楚机器硬件结构以及操作系统功效;第三,对编译方法及使用软件工具也必须准确化。总之,总设计师在设计编译程序时必须估量系统功效要求、硬件设备及软件工具等诸原因对编译程序结构影响。第9页10 10
6、编译原理教程编译原理教程习题解析习题解析图图1-1 编译程序总框图编译程序总框图 第10页11 11编译原理教程编译原理教程习题解析习题解析第二章词法分析2.1完成以下选择题:(1)词法分析所依据是。A语义规则B构词规则C语法规则D等价变换规则(2)词法分析器输入是。A单词符号串B源程序C语法单位D目标程序第11页12 12编译原理教程编译原理教程习题解析习题解析(3)词法分析器输出是。A单词种别编码B单词种别编码和本身值C单词在符号表中位置D单词本身值(4)状态转换图(见图2-1)接收字集为_。A以0开头二进制数组成集合B以0结尾二进制数组成集合C含奇数个0二进制数组成集合D含偶数个0二进制
7、数组成集合第12页13 13编译原理教程编译原理教程习题解析习题解析图图2-1 习题习题2.1DFA M 第13页14 14编译原理教程编译原理教程习题解析习题解析(5)对于任一给定NFAM,一个DFAM,使L(M)=L(M)。A一定不存在 B一定存在C可能存在D可能不存在(6)DFA适合用于。A定理证实 B语法分析C词法分析D语义加工第14页15 15编译原理教程编译原理教程习题解析习题解析(7)下面用正规表示式描述词法叙述中,不正确是。A词法规则简单,采取正规表示式已足以描述B正规表示式表示比上下文无关文法愈加简练、直观和易于了解C正规表示式描述能力强于上下文无关文法D有限自动机结构比下推
8、自动机简单且分析效率高(8)与(a|b)*(a|b)等价正规式是。A(a|b)(a|b)*Ba*|b*C(ab)*(a|b)*D(a|b)*第15页16 16编译原理教程编译原理教程习题解析习题解析【解答】(1)由教材第一章1.3节中词法分析,可知词法分析所遵照是语言构词规则。故选B。(2)词法分析器功效是输入源程序,输出单词符号。故选B。(3)词法分析器输出单词符号通常表示为二元式:(单词种别,单词本身值)。故选B。(4)即使选项A、B、D都满足题意,但选项D更准确。故选D。第16页17 17编译原理教程编译原理教程习题解析习题解析(5)NFA能够有DFA与之等价,即二者描述能力相同;也即,
9、对于任一给定NFAM,一定存在一个DFAM,使L(M)=L(M)。故选B。(6)DFA便于识别,易于计算机实现,而NFA便于定理证实。故选C。(7)本题即使是第二章题,但答案参见第三章3.1.3节。即选C。(8)因为正则闭包R+=R*R=RR*,故(a|b)*(a|b)=(a|b)(a|b)*。故选A。第17页18 18编译原理教程编译原理教程习题解析习题解析2.2什么是扫描器?扫描器功效是什么?【解答】扫描器就是词法分析器,它接收输入源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。通常把词法分析器作为一个子程序,每当语法分析器需要一个单词符号时就调
10、用这个子程序。每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。第18页19 19编译原理教程编译原理教程习题解析习题解析2.3设M=(x,y,a,b,f,x,y)为一非确定有限自动机,其中f定义以下:f(x,a)=x,y fx,b=yf(y,a)=fy,b=x,y试结构对应确实定有限自动机M。【解答】对照自动机定义M=(S,f,s0,Z),由f定义可知f(x,a)、f(y,b)均为多值函数,所以M是一非确定有限自动机。先画出NFAM对应状态图,如图2-2所表示。第19页2020编译原理教程编译原理教程习题解析习题解析图2-2习题2.3NFAM 第20页21 21编译原理教程
11、编译原理教程习题解析习题解析用子集法结构状态转换矩阵,如表2-1所表示。表2-1状态转换矩阵 将转换矩阵中全部子集重新命名,形成表2-2所表示状态转换矩阵,即得到第21页2222编译原理教程编译原理教程习题解析习题解析将图2-3所表示DFAM最小化。首先,将M状态分成终态组1,2与非终态组0。其次,考查1,2。因为1,2a=1,2b=21,2,所以不再将其划分了,也即整个划分只有两组:0和1,2。令状态1代表1,2,即把原来抵达2弧都导向1,并删除状态2。最终,得到如图2-4所表示化简了DFAM。图图2-3 习题习题2.3DFA M其状态转换图如图其状态转换图如图2-3所表示。所表示。第22页
12、2323编译原理教程编译原理教程习题解析习题解析图2-4图2-3化简后DFAM 第23页2424编译原理教程编译原理教程习题解析习题解析2.4正规式(ab)*a与正规式a(ba)*是否等价?请说明理由。【解答】正规式(ab)*a对应NFA如图2-5所表示,正规式a(ba)*对应NFA如图2-6所表示。用子集法将图2-5和图2-6分别确定化为如图2-7(a)和(b)所表示状态转换矩阵,它们最终都能够得到最简DFA,如图2-8所表示。所以,这两个正规式等价。第24页2525编译原理教程编译原理教程习题解析习题解析图2-5正规式(ab)*a对应NFA第25页2626编译原理教程编译原理教程习题解析习
13、题解析图2-6正规式a(ba)*对应NFA第26页2727编译原理教程编译原理教程习题解析习题解析图2-7图2-5和图2-6确定化后状态转换矩阵 第27页2828编译原理教程编译原理教程习题解析习题解析图2-8最简DFA 第28页2929编译原理教程编译原理教程习题解析习题解析实际上,当闭包*取0时,正规式(ab)*a与正规式a(ba)*由初态X到终态Y之间仅存在一条a弧。因为(ab)*在a之前,故描述(ab)*弧应在初态结点X上;而(ba)*在a之后,故(ba)*对应弧应在终态结点Y上。所以,(ab)*a和a(ba)*所对应NFA也可分别描述为如图2-9(a)和(b)所表示形式,它们确定化并
14、化简后仍可得到图2-8所表示最简DFA。第29页3030编译原理教程编译原理教程习题解析习题解析图2-9(ab)*a和a(ba)*分别对应NFA 第30页31 31编译原理教程编译原理教程习题解析习题解析2.5设有L(G)=a2n+1b2ma2p+1|n0,p0,m1。(1)给出描述该语言正规表示式;(2)结构识别该语言确实定有限自动机(可直接用状态图形式给出)。【解答】该语言对应正规表示式为a(aa)*bb(bb)*a(aa)*,正规表示式对应NFA如图2-10所表示。第31页3232编译原理教程编译原理教程习题解析习题解析图2-10习题2.5NFA第32页3333编译原理教程编译原理教程习
15、题解析习题解析用子集法将图2-10确定化,如图2-11所表示。由图2-11重新命名后状态转换矩阵可化简为(也可由最小化方法得到)0,213,54,67图2-11习题2.5状态转换矩阵 第33页3434编译原理教程编译原理教程习题解析习题解析按次序重新命名为0、1、2、3、4后得到最简DFA,如图2-12所表示。图2-12习题2.5最简DFA 第34页3535编译原理教程编译原理教程习题解析习题解析2.6有语言L=w|w(0,1)+,而且w中最少有两个1,又在任何两个1之间有偶数个0,试结构接收该语言确实定有限状态自动机(DFA)。【解答】对于语言L,w中最少有两个1,且任意两个1之间必须有偶数
16、个0;也即在第一个1之前和最终一个1之后,对0个数没有要求。据此我们求出L正规式为0*1(00(00)*1)*00(00)*10*,画出与正规式对应NFA,如图2-13所表示。第35页3636编译原理教程编译原理教程习题解析习题解析图2-13习题2.6NFA第36页3737编译原理教程编译原理教程习题解析习题解析用子集法将图2-13所表示NFA确定化,如图2-14所表示由图2-14可看出非终态2和4下一状态相同,终态6和8下一状态相同,即得到最简状态为012,4356,87第37页3838编译原理教程编译原理教程习题解析习题解析按次序重新命名为0、1、2、3、4、5、6,则得到最简DFA,如图
17、2-15所表示。图图2-15 习题习题2.6最简最简DFA 第38页3939编译原理教程编译原理教程习题解析习题解析2.7已知正规式(a|b)*|aa)*b和正规式(a|b)*b。(1)试用有限自动机等价性证实这两个正规式是等价;(2)给出对应正规文法。【解答】(1)正规式(a|b)*|aa)*b对应NFA如图2-16所表示。用子集法将图2-16所表示NFA确定化为DFA,如图2-17所表示。第39页4040编译原理教程编译原理教程习题解析习题解析图图2-16 正规式正规式(a|b)*|aa)*b对应对应NFA第40页41 41编译原理教程编译原理教程习题解析习题解析图图2-17 图图2-16
18、确定化后状态转换矩阵确定化后状态转换矩阵 第41页4242编译原理教程编译原理教程习题解析习题解析因为对非终态状态1、2来说,它们输入a、b下一状态是一样,故状态1和状态2能够合并,将合并后终态3命名为2,则得到表2-3(注意,终态和非终态即使输入a、b下一状态相同也不能合并)。由此得到最简DFA,如图2-18所表示。正规式(a|b)*b对应NFA如图2-19所表示。用子集法将图2-19所表示NFA确定化为如图2-20所表示状态转换矩阵。第42页4343编译原理教程编译原理教程习题解析习题解析表2-3合并后状态转换矩阵 第43页4444编译原理教程编译原理教程习题解析习题解析图图2-18 习题
19、习题2.7最简最简DFA 第44页4545编译原理教程编译原理教程习题解析习题解析图图2-19 正规式正规式(a|b)*b对应对应NFA 第45页4646编译原理教程编译原理教程习题解析习题解析比较图2-20与图2-17,重新命名后转换矩阵是完全一样,也即正规式(a|b)*b能够一样得到化简后DFA如图2-18所表示。所以,两个自动机完全一样,即两个正规文法等价。图图2-20 图图2-19确定化后状态转换矩阵确定化后状态转换矩阵第46页4747编译原理教程编译原理教程习题解析习题解析2.8结构一个DFA,它接收=a,b上全部不含abb字符串。解:=a,b上全部不含abb字符串可表示为b*(a*
20、b)a*。第47页4848编译原理教程编译原理教程习题解析习题解析2.9结构一个DFA,它接收=a,b上全部含偶数个a字符串。解:=a,b上全部含偶数个a字符串可表示为(b|ab*a)*第48页4949编译原理教程编译原理教程习题解析习题解析2.10以下程序段以B表示循环体,A表示初始化,I表示增量,T表示测试:I=1;while(I=n)sun=sun+aI;I=I+1;请用正规表示式表示这个程序段可能执行序列。【解答】用正规表示式表示程序段可能执行序列为AT(BIT)*。第49页5050编译原理教程编译原理教程习题解析习题解析2.9将图2-21所表示非确定有限自动机(NFA)变换成等价确实
21、定有限自动机(DFA)。其中,X为初态,Y为终态。【解答】用子集法将NFA确定化,如图2-22所表示。第50页51 51编译原理教程编译原理教程习题解析习题解析图图2-21 习题习题2.9NFA 第51页5252编译原理教程编译原理教程习题解析习题解析图图2-22 习题习题2.9状态转换矩阵状态转换矩阵22,Y2,422,Y2,42,42,42,4,Y2,4,Y2,4,Y第52页5353编译原理教程编译原理教程习题解析习题解析图2-22所对应DFA如图2-23所表示。对图2-23所表示DFA进行最小化。首先将状态分为非终态集和终态集两部分:0,1,2,5和3,4,6,7。由终态集可知,对于状态
22、3、6、7,不论输入字符是a还是b下一状态均为终态集,而状态4在输入字符b下一状态落入非终态集,故将其划分为0,1,2,5,4,3,6,7对于非终态集,在输入字符a、b后按其下一状态落入状态集不一样而最终划分为0,1,2,5,4,3,6,7按次序重新命名为0、1、2、3、4、5,得到最简DFA如图2-24所表示。第53页5454编译原理教程编译原理教程习题解析习题解析图图2-23 习题习题2.9DFA 第54页5555编译原理教程编译原理教程习题解析习题解析 图图2-24 习题习题2.9最简最简DFA 第55页5656编译原理教程编译原理教程习题解析习题解析2.10有一台自动售货机,接收1分和
23、2分硬币,出售3分钱一块硬糖。用户每次向机器中投放大于等于3分硬币,便可得到一块糖(注意:只给一块而且不找钱)。(1)写出售货机售糖正规表示式;(2)结构识别上述正规式最简DFA。【解答】(1)设a=1,b=2,则售货机售糖正规表示式为a(b|a(a|b)|b(a|b)。(2)画出与正规表示式a(b|a(a|b)|b(a|b)对应NFA,如图2-25所表示。用子集法将图2-25所表示NFA确定化,如图2-26所表示。第56页5757编译原理教程编译原理教程习题解析习题解析图图2-25 习题习题2.10NFA第57页5858编译原理教程编译原理教程习题解析习题解析由图2-26可看出,非终态2和非
24、终态3面对输入符号a或b下一状态相同,故合并为一个状态,即最简状态0、1、2,3、4。图图2-26 习题习题2.10状态转换矩阵状态转换矩阵 第58页5959编译原理教程编译原理教程习题解析习题解析按次序重新命名为0、1、2、3,则得到最简DFA,如图2-27所表示。图图2-27 习题习题2.10最简最简DFA 第59页6060编译原理教程编译原理教程习题解析习题解析第三章语法分析3.1完成以下选择题:(1)程序语言语义需要用来描述。A上下文无关文法B上下文相关文法C正规文法 D短语文法(2)2型文法对应。A图灵机 B有限自动机C下推自动机 D线性界限自动机第60页61 61编译原理教程编译原
25、理教程习题解析习题解析(3)下述结论中,是正确。A1型语言0型语言B2型语言1型语言C3型语言2型语言DAC均不成立(4)有限状态自动机能识别_。A上下文无关文法B上下文相关文法C正规文法D短语文法(5)文法GS:SxSx|y所识别语言是。AxyxB(xyx)*Cxnyxn(n0)Dx*yx*第61页6262编译原理教程编译原理教程习题解析习题解析(6)只含有单层分枝子树称为“简单子树”,则句柄直观解释是。A子树末端结点(即树叶)组成符号串B简单子树末端结点组成符号串C最左简单子树末端结点组成符号串D最左简单子树末端结点组成符号串且该符号串必须含有终止符第62页6363编译原理教程编译原理教程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 习题 答案 公开 一等奖 联赛 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。