编译原理第15章习题课答案解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《编译原理第15章习题课答案解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 15 习题 答案 解析 课件
- 资源描述:
-
1、2、一个典型的编译系统通常由有哪些部分组成?、一个典型的编译系统通常由有哪些部分组成?各部分的主要功能是什么?各部分的主要功能是什么?1编译系统编译系统编译程序编译程序语法分析语法分析语义分析与中间代码生成语义分析与中间代码生成优化优化目标代码生成目标代码生成运行系统运行系统词法分析词法分析 语法分析语法分析():在词法分析的基础上将单词序列分解成各类语法在词法分析的基础上将单词序列分解成各类语法短语,如短语,如“程序程序”,“语句语句”,“表达式表达式”等等。等等。语义分析语义分析():语义分析是在语法分析程序确定出语法短语后,审语义分析是在语法分析程序确定出语法短语后,审查有无语义错误,并
2、为代码生成阶段收集类型信息。查有无语义错误,并为代码生成阶段收集类型信息。1 词法分析词法分析():从左到右一个字符一个字符的读入源程序,对从左到右一个字符一个字符的读入源程序,对构成源程序的字符串进行扫描和分解,从而识别出构成源程序的字符串进行扫描和分解,从而识别出一个个单词(也称单词符号或简称符号)。一个个单词(也称单词符号或简称符号)。1 代码优化代码优化():为了使生成的目标代码更为高效,可以对产生的中为了使生成的目标代码更为高效,可以对产生的中间代码进行变换或进行改造,这就是代码的优化。间代码进行变换或进行改造,这就是代码的优化。代码生成代码生成():目标代码生成是编译器的最后一个阶
3、段。在生成目目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:计算机的系统结构、指标代码时要考虑以下几个问题:计算机的系统结构、指令系统、寄存器的分配以及内存的组织等。令系统、寄存器的分配以及内存的组织等。中间代码生成中间代码生成():完成语法分析和语义处理工作后,编译程序将源程完成语法分析和语义处理工作后,编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间序变成一种内部表示形式,这种内部表示形式叫做中间语言或称中间代码,它是一种结构简单、含义明确的记语言或称中间代码,它是一种结构简单、含义明确的记号系统。号系统。21.写出写出C语言和语言的输入字母表。语言和
4、语言的输入字母表。C语言:语言:09数字,大小写英文字母,键盘上可见的字符数字,大小写英文字母,键盘上可见的字符语言:可以包括的所有字符。语言:可以包括的所有字符。6.文法文法G6为为:N D 0|1|2|3|4|5|6|7|8|9 (1)G6的语言是什么的语言是什么?G6的语言是:的语言是:09的数字组成的任意非空串的数字组成的任意非空串L(G6)=0,1,2,3,4,5,6,7,8,9+(2)给出句子)给出句子0127、34和和568的最左和最右推导。的最左和最右推导。7、写一文法,使其语言是奇数集。写一文法,使其语言是奇数集。要求:不以要求:不以0打头。打头。复杂的情况复杂的情况:分三部
5、分分三部分末尾:以末尾:以1|3|5|7|9结尾结尾(一位一位):):D 1|3|5|7|9开头:除了开头:除了0的任意数字的任意数字中间部分:空或者任意数字串中间部分:空或者任意数字串 D1|3|5|7|9 C A0所以题目要求的文法所以题目要求的文法GNGN可以写成:可以写成:N BCD|DD 1|3|5|7|9B 2|4|6|8|DC CA|A 0|BB2|4|6|89、证明文法、证明文法:S|i 是二义的。是二义的。二义性的含义二义性的含义:如果文法存在某个句子对应两棵以上如果文法存在某个句子对应两棵以上不同的语法树,或者两种以上不同的最不同的语法树,或者两种以上不同的最左左/右推导,
6、则称这个文法是二义的。右推导,则称这个文法是二义的。首先:找到此文法对应的一个句子首先:找到此文法对应的一个句子 其次:构造与之对应的两棵语法树其次:构造与之对应的两棵语法树S i S e S i S i i S i S i S e S i i结论:因为该文法存在句子对应两棵结论:因为该文法存在句子对应两棵 不同的语法树,因而该文法是二义的。不同的语法树,因而该文法是二义的。11、给出下面语言的相应文法、给出下面语言的相应文法L1=n10 G1(S):S A B从从n,i的不同取值来把的不同取值来把L1分成两部分:分成两部分:A|前半部分是前半部分是 :后半部分是后半部分是 c i:B|所以整
7、个文法所以整个文法G1S可以写为:可以写为:L2=n10G2(S):S A BL3=0G3(S):S A BL4=1n 0m 1m 0 0可以看成是两部分:可以看成是两部分:剩下两边的部分就是:剩下两边的部分就是:S 1S0中间部分是中间部分是 0m 1m:A 0A1|所以所以G4S可以写为:可以写为:S 1S0|A A 0A1|A37.构造下列正规式相应的。构造下列正规式相应的。步骤步骤:.根据正规式画出对应的状态转换图根据正规式画出对应的状态转换图;.根据状态转换图画出对应的状态转换矩阵根据状态转换图画出对应的状态转换矩阵;.根据状态转换矩阵得到重命名后的状态转换矩阵根据状态转换矩阵得到重
8、命名后的状态转换矩阵;.根据重命名后的状态转换矩阵得出最后的根据重命名后的状态转换矩阵得出最后的.问题:将状态转换图与混淆。问题:将状态转换图与混淆。1(0|1)*101.状态转换图状态转换图 abadb1(0|1)*101a1(0|1)*101dcef101101ggg.状态转换矩阵状态转换矩阵II0I1a1abdcef10101gII0I1ab,c,db,c,dc,dc,d,ec,dc,dc,d,ec,d,ec,d,fc,d,ec,d,fc,dc,d,e,gc,d,e,gc,d,fc,d,e.重命名后的状态转换矩阵重命名后的状态转换矩阵S01A(始态始态)BBCDCCDDEDECF(终态终
9、态)F(终态终态)EDAB10C1D010E10101F1(1010*|1(010)*1)*0abdc10e0101fghi01110jklmn.状态转换图状态转换图.状态转换矩阵状态转换矩阵.重命名后的状态转换矩阵重命名后的状态转换矩阵8、给出下面正规表达式、给出下面正规表达式(1)以)以01结尾的二进制数串。结尾的二进制数串。(0|1)*01(2)能被)能被5整除的十进制数。整除的十进制数。0|5(0|5)|(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(4)英文字母组成的所有符号串,要求符号串中的)英文字母组成的所有符号串,要求符号串中的 字母按字典序
10、排列。字母按字典序排列。(A|a)*(B|b)*(C|c)*(Z|z)*(3)包含奇數個)包含奇數個1或奇數個或奇數個0的二進制串的二進制串0*1(0|10*1)*|1*0(0|10*1)*(5)沒有重複出現的數字的數字符號串的全體)沒有重複出現的數字的數字符號串的全體令令 0,1,2.9R0129記為記為 i(0,1,2.,9)P(0,1,2.,9)表示表示0,1,2.,9的全排列的全排列019019 P(0,1,2.,9)8、给出下面正规表达式、给出下面正规表达式(6)最多有一個重複出現的數字的數字符號串的全體)最多有一個重複出現的數字的數字符號串的全體i 019 i(0,1,2.,9)0
11、19 P(0,1,2.,9)(7)不包含字串的由)不包含字串的由a和和b組成的符號串的全體組成的符號串的全體b*(a*|()*)*9、对下面情况给出及正规表达式:、对下面情况给出及正规表达式:(1)0,1上的含有子串上的含有子串010的所有串。的所有串。正规式:正规式:(0|1)*010(0|1)*做法同第做法同第7题。题。(2)0,1上不含子串上不含子串010的所有串。的所有串。正规式:正规式:1*(0|11*1)*1*0*1*(0|11)*(0|1)1*(0|11)*1*12、将图、将图3.18的的(a)和和(b)分别确定化和最少化。分别确定化和最少化。(a)aaa,b10.状态转换矩阵状
12、态转换矩阵00,1110,10,110.重命名后的状态转换矩阵重命名后的状态转换矩阵012211200a2baba.最小化最小化0=(0,1,2)10,110,12因此,不能再分因此,不能再分02baa023145aaaabbbbbbaa(b)这道题实质上已经是确定化了的,所以我们只需最小化这道题实质上已经是确定化了的,所以我们只需最小化:2,3,4,5 0,1 2,3,4,50,1,3,5 分属两区,所以分为分属两区,所以分为2,4 3,5 0,11 0,12,4 所以所以 0,1等价等价2,40,1 2,43,5 所以所以2,4等价等价 3,53,5 3,52,4 所以所以3,5等价等价所
13、以分为所以分为 0,1 2,4 3,5 023aabbba14、构造一个,它接受、构造一个,它接受=0,1上所有满足如下上所有满足如下 条件的字符串:每个条件的字符串:每个1都有都有0直接跟在右边。直接跟在右边。思路:先写出满足条件的正规式,由正规式构造思路:先写出满足条件的正规式,由正规式构造 ,再把确定化和最小化。,再把确定化和最小化。满足条件的正规式:满足条件的正规式:(0|10)*0110yx(0|10)*xy12100 xy12100确定化:确定化:给状态编号:给状态编号:02101100最小化:最小化:0,10,1,220,10=1 0,11=20,10=1 0,11=220=02
14、0=0,21=21=2 2或或0,10,1所以所以0,10,1不可分,用狀態不可分,用狀態0 0代表它們代表它們0210015、给定右线性文法、给定右线性文法G:求一个与:求一个与G等价的左线性文法。等价的左线性文法。S 0S|1S|1A|0BA 1C|1B 0C|0C 0C|1C|0|1SABCZ001110001101GZ:Z Z0101B A0|0A B1|1确定化、最小化后的为:确定化、最小化后的为:SB0A110Z010,1补充:构造一右线性文法,使它与如下文法等价:补充:构造一右线性文法,使它与如下文法等价:S A U T B 并根据所得右线性文法,构造出相应的状态转换图。并根据所
展开阅读全文