编译原理第15章习题课课件.ppt
《编译原理第15章习题课课件.ppt》由会员分享,可在线阅读,更多相关《编译原理第15章习题课课件.ppt(36页珍藏版)》请在三一办公上搜索。
1、chapter1,1、何谓源程序、目标程序、翻译程序、编译程序 和解释程序?它们之间可能有何种关系?,源程序:用源语言编写的程序。,目标程序:源程序经翻译程序过加工处理后生成的程序。,翻译程序:将源程序转换为与其逻辑上等价的目标程序。,编译程序:,源语言为高级语言,目标语言为汇编语言或机器语言的翻译程序。,解释程序:,源语言程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。,先翻译后执行,边解释边执行,执行速度快,有利于程序的调试,多次运算,1次运算,2、一个典型的编译系统通常由有哪些部分组成?各部分的主要功能是什么?,chapter1,编译系统,编译程序,语法分析,语义分析与中间代
2、码生成,优化,目标代码生成,运行系统,词法分析,语法分析(Syntax Analysis):,在词法分析的基础上将单词序列分解成各类语法短语,如“程序”,“语句”,“表达式”等等。,语义分析(Syntactic Analysis):,语义分析是在语法分析程序确定出语法短语后,审查有无语义错误,并为代码生成阶段收集类型信息。,chapter1,词法分析(Lexical Analysis):,从左到右一个字符一个字符的读入源程序,对构成源程序的字符串进行扫描和分解,从而识别出一个个单词(也称单词符号或简称符号)。,chapter1,代码优化(Optimization of code):,为了使生成
3、的目标代码更为高效,可以对产生的中间代码进行变换或进行改造,这就是代码的优化。,代码生成(Generation of code):,目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:计算机的系统结构、指令系统、寄存器的分配以及内存的组织等。,中间代码生成(Generation of intermediate code):,完成语法分析和语义处理工作后,编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间语言或称中间代码,它是一种结构简单、含义明确的记号系统。,chapter2,1.写出C语言和Java语言的输入字母表。,C语言:09数字,大小写英文字母,键盘上可
4、见的字符,Java语言:Unicode可以包括的所有字符。,6.文法G6为:N D|ND D 0|1|2|3|4|5|6|7|8|9(1)G6的语言是什么?,G6的语言是:09的数字组成的任意非空串,L(G6)=x|x0,1,2,3,4,5,6,7,8,9+,(2)给出句子0127、34和568的最左和最右推导。,7、写一文法,使其语言是奇数集。要求:不以0打头。,复杂的情况:分三部分,末尾:以1|3|5|7|9结尾,(一位):,D 1|3|5|7|9,开头:除了0的任意数字,中间部分:空或者任意数字串,D1|3|5|7|9,CCA|A0|B,所以题目要求的文法GN可以写成:,B2|4|6|8
5、|D,9、证明文法:S iSeS|iS|i 是二义的。,二义性的含义:,如果文法存在某个句子对应两棵以上不同的语法树,或者两种以上不同的最左/右推导,则称这个文法是二义的。,首先:找到此文法对应的一个句子 iiiei,其次:构造与之对应的两棵语法树,结论:因为该文法存在句子iiiei对应两棵 不同的语法树,因而该文法是二义的。,11、给出下面语言的相应文法,L1=anbnci|n1,i0,G1(S):SAB AaAb|ab BcB|,从n,i的不同取值来把L1分成两部分:,A aAb|ab,前半部分是 an bn:,后半部分是 c i:,B Bc|,所以整个文法G1S可以写为:,L2=aibn
6、cn|n1,i0,G2(S):SAB AaA|BbBc|bc,L3=anbnambm|m,n0,G3(S):SAB AaAb|BaBb|,L4=1n 0m 1m 0n|n,m0,可以看成是两部分:,剩下两边的部分就是:,S 1S0,中间部分是 0m 1m:,A 0A1|,所以G4S可以写为:,S 1S0|A A 0A1|,|A,chapter3,7.构造下列正规式相应的DFA。,步骤:,.根据正规式画出对应的状态转换图;,.根据状态转换图画出对应的状态转换矩阵;,.根据状态转换矩阵得到重命名后的状态转换矩阵;,.根据重命名后的状态转换矩阵得出最后的DFA.,问题:将状态转换图与DFA混淆。,1
7、(0|1)*101,.状态转换图,a,b,a,d,b,1(0|1)*101,a,1,(0|1)*,101,d,c,e,f,1,0,1,1,0,1,.状态转换矩阵,I,I0,I1,a,b,c,d,b,c,d,c,d,c,d,e,c,d,c,d,c,d,e,c,d,e,c,d,f,c,d,e,c,d,f,c,d,c,d,e,g,c,d,e,g,c,d,f,c,d,e,.重命名后的状态转换矩阵,S,0,1,A(始态),B,B,C,D,C,C,D,D,E,D,E,C,F(终态),F(终态),E,D,A,B,1,0,C,1,D,0,1,0,E,1,0,1,0,1,.DFA,1(1010*|1(010)*
8、1)*0,a,b,d,c,1,0,0,1,0,1,f,g,h,i,0,1,1,1,0,j,k,l,m,n,.状态转换图,.状态转换矩阵,.重命名后的状态转换矩阵,.DFA,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)英文字母组成的所有符号串,要求符号串中的 字母按字典序排列。,(A|a)*(B|b)*(C|c)*(Z|z)*,9、对下面情况给出DFA及正规表达式:,(1)0,1上的含有子串010的所有串。,正规式:(0|1
9、)*010(0|1)*,DFA做法同第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),.状态转换矩阵,0,0,1,1,1,0,1,0,1,1,0,.重命名后的状态转换矩阵,0,1,2,2,1,1,2,0,a,2,b,a,b,a,.DFA,.最小化,0=(0,1,2),0,1a=1,0,1b=2,因此,不能再分,2,b,a,a,(b),这道题实质上已经是确定化了的,所以我们只需最小化,:2,3,4,5 0,1,2,3,4,5a=0,1,3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 15 习题 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6599823.html