版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编编 译译 原原 理理 chapter15习习题题chapter11、何谓源程序、目标程序、翻译程序、编译程序、何谓源程序、目标程序、翻译程序、编译程序 和解释程序?它们之间可能有何种关系?和解释程序?它们之间可能有何种关系?源程序:用源语言编写的程序。源程序:用源语言编写的程序。目标程序:源程序经翻译程序过加工处理后生成的程序。目标程序:源程序经翻译程序过加工处理后生成的程序。翻译程序:将源程序转换为与其逻辑上等价的目标程序。翻译程序:将源程序转换为与其逻辑上等价的目标程序。编译程序:编译程序: 源语言为高级语言,目标语言为汇编语言或机源语言为高级语言,目标语言为汇编语言或机器语言的翻译程序
2、。器语言的翻译程序。解释程序:解释程序: 源语言程序作为输入,但不产生目标程序,而源语言程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。是边解释边执行源程序本身。 先翻译后执行先翻译后执行 边解释边执行边解释边执行执行速度快执行速度快 有利于程序的调试有利于程序的调试多次运算多次运算 1次运算次运算编编 译译 原原 理理 chapter15习习题题2、一个典型的编译系统通常由有哪些部分组成?、一个典型的编译系统通常由有哪些部分组成? 各部分的主要功能是什么?各部分的主要功能是什么?chapter1编译系统编译系统编译程序编译程序语法分析语法分析语义分析与中间代码生成语义分析与中间代
3、码生成优化优化目标代码生成目标代码生成运行系统运行系统词法分析词法分析编编 译译 原原 理理 chapter15习习题题 语法分析语法分析(Syntax Analysis): 在词法分析的基础上将单词序列分解成各类语法在词法分析的基础上将单词序列分解成各类语法短语,如短语,如“程序程序”,“语句语句”,“表达式表达式”等等。等等。 语义分析语义分析(Syntactic Analysis): 语义分析是在语法分析程序确定出语法短语后,审语义分析是在语法分析程序确定出语法短语后,审查有无语义错误,并为代码生成阶段收集类型信息。查有无语义错误,并为代码生成阶段收集类型信息。 chapter1 词法分
4、析词法分析(Lexical Analysis): 从左到右从左到右一个字符一个字符的读入源程序,对一个字符一个字符的读入源程序,对构成源程序的字符串进行扫描和分解,从而构成源程序的字符串进行扫描和分解,从而识别出识别出一个个单词一个个单词(也称单词符号或简称符号)。(也称单词符号或简称符号)。 编编 译译 原原 理理 chapter15习习题题chapter1 代码优化代码优化(Optimization of code): 为了使生成的目标代码更为高效,可以对产生的中为了使生成的目标代码更为高效,可以对产生的中间代码进行变换或进行改造,这就是代码的优化。间代码进行变换或进行改造,这就是代码的优
5、化。 代码生成代码生成(Generation of code): 目标代码生成是编译器的最后一个阶段。在生成目目标代码生成是编译器的最后一个阶段。在生成目标代码时要考虑以下几个问题:标代码时要考虑以下几个问题:计算机的系统结构、指计算机的系统结构、指令系统、寄存器的分配以及内存的组织令系统、寄存器的分配以及内存的组织等。等。 中间代码生成中间代码生成(Generation of intermediate code): 完成语法分析和语义处理工作后,编译程序将源程完成语法分析和语义处理工作后,编译程序将源程序变成一种内部表示形式,这种内部表示形式叫做中间序变成一种内部表示形式,这种内部表示形式叫
6、做中间语言或称中间代码,它是一种结构简单、含义明确的记语言或称中间代码,它是一种结构简单、含义明确的记号系统。号系统。编编 译译 原原 理理 chapter15习习题题chapter21.写出写出C语言和语言和Java语言的输入字母表。语言的输入字母表。C语言:语言:09数字,大小写英文字母,键盘上可见的字符数字,大小写英文字母,键盘上可见的字符Java语言:语言:Unicode可以包括的所有字符。可以包括的所有字符。6.文法文法G6为为: N D|ND D 0|1|2|3|4|5|6|7|8|9 (1) G6的语言是什么的语言是什么? G6的语言是:的语言是: 09的数字组成的任意的数字组成
7、的任意非空非空串串L(G6)=x|x0,1,2,3,4,5,6,7,8,9+(2)给出句子)给出句子0127、34和和568的最左和最右推导。的最左和最右推导。编编 译译 原原 理理 chapter15习习题题7、 写一文法,使其语言是写一文法,使其语言是奇数集奇数集。 要求:不以要求:不以0打头。打头。复杂的情况复杂的情况: :分三部分分三部分末尾:以末尾:以1|3|5|7|9结尾结尾( (一位一位):):D 1|3|5|7|9开头:除了开头:除了0的任意数字的任意数字中间部分:空或者任意数字串中间部分:空或者任意数字串 D1|3|5|7|9 CCA| A0|B所以题目要求的文法所以题目要求
8、的文法GNGN可以写成:可以写成:N BCD|DD 1|3|5|7|9B 2|4|6|8|DC CA |A 0 | BB2|4|6|8|D编编 译译 原原 理理 chapter15习习题题9、证明文法、证明文法: S iSeS | iS | i 是二义的。是二义的。二义性的含义二义性的含义: :如果文法存在如果文法存在某个句子某个句子对应两棵以上对应两棵以上不同的语法树,或者两种以上不同的最不同的语法树,或者两种以上不同的最左左/ /右推导,则称这个文法是二义的。右推导,则称这个文法是二义的。首先:找到此文法对应的一个首先:找到此文法对应的一个句子句子 iiiei其次:构造与之对应的其次:构造
9、与之对应的两棵两棵语法树语法树S i S e S i S i i S i S i S e S i i结论:因为该文法存在句子结论:因为该文法存在句子iiieiiiiei对应两棵对应两棵 不同的语法树,因而该文法是二义的。不同的语法树,因而该文法是二义的。编编 译译 原原 理理 chapter15习习题题11、给出下面语言的相应文法、给出下面语言的相应文法L1=anbnci| n1,i0 G1(S): SAB AaAb|ab BcB|从从n,i的不同取值来把的不同取值来把L1分成两部分:分成两部分:A aAb | ab 前半部分是前半部分是 an bn : 后半部分是后半部分是 c i :B B
10、c | 所以整个文法所以整个文法G1S可以写为:可以写为:编编 译译 原原 理理 chapter15习习题题L2=aibncn| n1,i0G2(S): SAB AaA| BbBc|bcL3=anbnambm| m,n0G3(S): SAB AaAb| BaBb|编编 译译 原原 理理 chapter15习习题题L4=1n 0m 1m 0n| n,m0可以看成是两部分:可以看成是两部分:剩下两边的部分就是:剩下两边的部分就是:S 1S0中间部分是中间部分是 0m 1m :A 0A1 | 所以所以G4S可以写为:可以写为: S 1S0 | A A 0A1 | A编编 译译 原原 理理 chapt
11、er15习习题题chapter37.构造下列正规式相应的构造下列正规式相应的DFA。步骤步骤: :. .根据正规式根据正规式画出画出对应的对应的状态转换图状态转换图; ;. .根据状态转换图画出对应的根据状态转换图画出对应的状态转换矩阵状态转换矩阵; ;. .根据状态转换矩阵得到根据状态转换矩阵得到重命名后的状态转换矩阵重命名后的状态转换矩阵; ;. .根据重命名后的状态转换矩阵得出最后的根据重命名后的状态转换矩阵得出最后的DFA. .问题:将状态转换图与问题:将状态转换图与DFA混淆。混淆。编编 译译 原原 理理 chapter15习习题题1(0|1)*101.状态转换图状态转换图 abad
12、b1(0|1)*101a1(0|1)*101dcef101101ggg编编 译译 原原 理理 chapter15习习题题.状态转换矩阵状态转换矩阵II0I1ab,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,e1abdcef10101g编编 译译 原原 理理 chapter15习习题题II0I1ab,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. .重命名后的状态转换矩阵重命名后的状态转换矩阵
13、S01A(始态始态)BBCDCCDDEDECF(终态终态)F(终态终态)EDAB10C1D010E10101F.DFA编编 译译 原原 理理 chapter15习习题题1(1010*|1(010)*1)*0abdc10e0101fghi01110jklmn.状态转换图状态转换图 编编 译译 原原 理理 chapter15习习题题.状态转换矩阵状态转换矩阵II 0I 101,2,31,2,345,9,10,115,9,10,116,122,36,122,3,7,8,132,345,9,10,112,3,7,8,132,3,4,8,10,115,9,10,112,3,4,8,10,112,3,4,
14、8,122,3,5,9,10,112,3,4,8,122,3,4,85,9,10,11,132,3,5,9,10,114,6,122,3,5,9,10,112,3,4,82,3,4,85,9,10,115,9,10,11,136,10,11,122,34,6,122,3,7,8,136,10,11,12122,3,7,8,1312131310,1110,11122,3编编 译译 原原 理理 chapter15习习题题. .重命名后的状态转换矩阵重命名后的状态转换矩阵II 0I 11223445657634784891091112101310111141214613714157151616171
15、7156.DFA编编 译译 原原 理理 chapter15习习题题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)*(3)包含奇數個)包含奇數個1或奇數個或奇數個0的二進制串的二進制
16、串0*1(0|10*1)*|1*0(0|10*1)*编编 译译 原原 理理 chapter15习习题题(5)沒有重複出現的數字的數字符號串的全體)沒有重複出現的數字的數字符號串的全體令令ri=i| ,i=0,1,2.9R0|R1|R2|.|R9記為記為Ri i (0,1,2.,9) P(0,1,2.,9)表示表示0,1,2.,9的全排列的全排列ri0ri1.ri9ri0ri1.ri9 P(0,1,2.,9)8、给出下面正规表达式、给出下面正规表达式(6)最多有一個重複出現的數字的數字符號串的全體)最多有一個重複出現的數字的數字符號串的全體i ri0ri1.ri9 i (0,1,2.,9) ri
17、0ri1.ri9 P(0,1,2.,9)(7)不包含字串)不包含字串abb的由的由a和和b組成的符號串的全體組成的符號串的全體b*(a*|(ba)*)*编编 译译 原原 理理 chapter15习习题题9、对下面情况给出、对下面情况给出DFA及正规表达式:及正规表达式:(1)0,1上的含有子串上的含有子串010的所有串。的所有串。正规式:正规式:(0 | 1)* 010 (0 | 1)* DFA做法同第做法同第7题。题。(2) 0,1上不含子串上不含子串010的所有串。的所有串。正规式:正规式:1*(0|11*1)*1*0*1*(0 | 11)*(0 | 1)1*( 0 | 11)*1*编编
18、译译 原原 理理 chapter15习习题题12、将图、将图3.18的的(a)和和(b)分别确定化和最少化。分别确定化和最少化。(a)aaa,b10.状态转换矩阵状态转换矩阵 I Ia Ib 00,1110,10,110. .重命名后的状态转换矩阵重命名后的状态转换矩阵 I Ia Ib 012211200a2baba.DFA.最小化最小化0=(0,1,2)10,1a=10,1b=2因此,不能再分因此,不能再分02baa编编 译译 原原 理理 chapter15习习题题023145aaaabbbbbbaa(b)这道题实质上已经是确定化了的,所以我们只需最小化这道题实质上已经是确定化了的,所以我们
19、只需最小化 :2,3,4,5 0,1 2,3,4,5a=0,1,3,5 分属两区,所以分为分属两区,所以分为2,4 3,5 0,1a=1 0,1b=2,4 所以所以 0,1等价等价2,4a=0,1 2,4b=3,5 所以所以2,4等价等价 3,5a=3,5 3,5b=2,4 所以所以3,5等价等价所以分为所以分为 0,1 2,4 3,5 023aabbba编编 译译 原原 理理 chapter15习习题题14、构造一个、构造一个DFA,它接受,它接受=0,1上所有满足如下上所有满足如下 条件的字符串:每个条件的字符串:每个1都有都有0直接跟在右边。直接跟在右边。思路:先写出满足条件的正规式,由
20、正规式构造思路:先写出满足条件的正规式,由正规式构造 NFA,再把,再把NFA确定化和最小化。确定化和最小化。满足条件的正规式:满足条件的正规式:(0|10)*0110yx(0|10)*xy12100编编 译译 原原 理理 chapter15习习题题xy12100确定化:确定化:0 01 1X,1,YX,1,Y1,Y1,Y221,Y1,Y1,Y1,Y22221,Y1,Y给状态编号:给状态编号:0 01 10 01 12 21 11 12 22 21 1编编 译译 原原 理理 chapter15习习题题02101100最小化:最小化:0,1,20,10=1 0,11=220=0,21= 2或或0
21、,1所以所以0,1不可分,用狀態不可分,用狀態0代表它們代表它們02100编编 译译 原原 理理 chapter15习习题题15、给定右线性文法、给定右线性文法G:求一个与:求一个与G等价的左线性文法。等价的左线性文法。S 0S | 1S | 1A | 0BA 1C | 1B 0C | 0C 0C | 1C | 0 | 1SABCZ001110001101GZ:Z Z0|Z1|B0|A1B A0 | 0A B1 | 1确定化、最小化后的确定化、最小化后的DFA为:为:SB0A110Z010,1编编 译译 原原 理理 chapter15习习题题补充:构造一右线性文法,使它与如下文法等价:补充:构
22、造一右线性文法,使它与如下文法等价: SAB AUT Ua|aU Tb|bT Bc|cB 并根据所得右线性文法,构造出相应的状态转换图。并根据所得右线性文法,构造出相应的状态转换图。思路:思路: 先写出原文法所描述的语言先写出原文法所描述的语言 L(G)=ambnck|m,n,k1GS: S aS|aB B bB|bC C cC|caSaCbcBbcT编编 译译 原原 理理 chapter15习习题题chapter44.1、考虑下面文法、考虑下面文法G1:S a | | (T) T T,S | S(1)消去)消去G1的左递归;的左递归;S a | | (T)T STT ,S T |(2)经改写
23、后的文法是否是)经改写后的文法是否是LL(1)文法,给出预测分析表。文法,给出预测分析表。经改写后的文法满足经改写后的文法满足3个条件,所以是个条件,所以是LL(1)的的编编 译译 原原 理理 chapter15习习题题预测分析表构造算法预测分析表构造算法:1.对文法中的每个产生式对文法中的每个产生式A 执行第二步和第三步执行第二步和第三步;FIRST(S)=a,( FIRST(T)=a,( FIRST(T)= , , FOLLOW(S) = ), ,# FOLLOW(T) = ) FOLLOW(T) = ) a(,)#S T T S aS S (T)T STT STT STT ,STT 编编
24、 译译 原原 理理 chapter15习习题题预测分析表构造算法预测分析表构造算法:1.对文法中的每个产生式对文法中的每个产生式A 执行第二步和第三步执行第二步和第三步;2.对每个终结符对每个终结符a FIRST( ),把把A a加到加到MA,a中中;S a; S ; S (T); T ST; T ,ST T FTRST(a)=aFIRST()=FIRST(T)=( FIRST(ST)=a,(,(FIRST(,(,ST)=,FIRST()= a(,)#S T T S aS S (T)T STT STT STT ,ST3.若若 FIRST( ),则对于任何则对于任何b FOLLOW(A)把把A
25、加至加至MA,b中中FOLLOW(T)=FOLLOW(T)=)T 编编 译译 原原 理理 chapter15习习题题递归子程序:递归子程序:procedure S;beginif sym=a or sym= then abvance else if sym=( then beginadvance;T;if sym=) then advance; else error; endelse errorend;编编 译译 原原 理理 chapter15习习题题procedure T;procedure T;beginbeginS;TS;TEndEndprocedure T;procedure T;be
26、ginbeginif sym=,if sym=, then bengin then bengin advance; advance; S;T S;T end endEndEndsym:是输入串指针是输入串指针IP所指的符号所指的符号 advance:是把是把IP调至下一个输入符号调至下一个输入符号error:是出错诊察程序是出错诊察程序编编 译译 原原 理理 chapter15习习题题补充题:有文法:补充题:有文法: E TE E ATE | T FT T MFT | F (E)| i A + | - M * | /(1)求)求First、Follow集,判断是否是集,判断是否是LL(1)文法
27、?)文法?(2)若是构造)若是构造LL(1)分析表?)分析表?(3)简述)简述LL(1)分析器的工作原理。)分析器的工作原理。编编 译译 原原 理理 chapter15习习题题4.2:有文法:有文法: E TE E +E | T FT T T | F PF F *F | P (E) |a|b|(1)求)求First、Follow集,判断是否是集,判断是否是LL(1)文法?)文法?(2)若是构造)若是构造LL(1)分析表?)分析表?(3)简述)简述LL(1)分析器的工作原理。)分析器的工作原理。编编 译译 原原 理理 chapter15习习题题E TEE ATE |T FTT MFT |F (E
28、)| iA + | -M * | /FIRST(M)=* , /FIRST(A)=+,- FIRST(F)=(, iFIRST(T)=* ,/ , FIRST(T)=(, i)FIRST(E)=+ ,- , FIRST(E)=(, iFOLLOW(E)=# ,)FOLLOW(E)=# ,)FOLLOW(T)= + ,- ,# ,)FOLLOW(T)= + ,- ,# ,)FOLLOW(F)=* ,/ , + ,- ,# ,) FOLLOW(A)= (, iFOLLOW(M)= (, iEE TE E TE E E ATEE ATE E E TT FT T FT T T-T T MFTT MFT
29、 T T FF i F (E) A A +A - M M *M / i+-*/()#编编 译译 原原 理理 chapter15习习题题P81.2.对文法对文法G: E TE E +E| T FT T T| F PF F *F| P (E)|a|b| 1)FIRST(E)=FIRST(T) =FIRST(F) =FIRST(P) =(,a,b, FIRST(E)=+, FIRST(T) =FIRST(T) = (,a,b, , FIRST(F)=*, FOLLOW(E) =#,)FOLLOW(E) =FOLLOW(E)= #,)FOLLOW(T) =FIRST(E) FOLLOW(E)= +,#
30、,)FOLLOW(T) =FOLLOW(T)= +,#,)FOLLOW(F) =FIRST(T) FOLLOW(T)=(,a,b, , +,#,)FOLLOWF) =FOLLOW(F) =(,a,b, , +,#,)FOLLOW(P) =FIRST(F) FOLLOW(F)= *, (,a,b, , +,#,) (ab+*)#EE TEE TEETEETEEE+EE E TTFTTFTTFTTFTTTTTTTTTTT T T FFPFFPFFPFFPFFF F F F F FFF F PP(E)PaPbP编编 译译 原原 理理 chapter15习习题题 2)考虑下列产生式: FIRST(+E
31、)FIRST()=+= FIRST(+E)FOLLOW(E)=+#,)= FIRST(T)FIRST()=(,a,b,= FIRST(T)FOLLOW(T)=(,a,b,+,),#= FIRST(*F)FIRST()=*= FIRST(*F)FOLLOW(F)=*(,a,b,+,),#= FIRST(E)FIRST(a) FIRST(b) FIRST()= 所以,该文法式LL(1)文法.编编 译译 原原 理理 chapter15习习题题(ab+*)#EETEE TEETEETEEE+EE E TTFTTFTTFTTFTTTTTTTTTTT T T FFPFFPFFPFFPFFF F F F F
32、 FFF F PP(E)PaPbP3)預測分析表:编编 译译 原原 理理 chapter15习习题题4)程序程序procedure E;beginif sym=( or sym=a or sym=b or sym= then begin T; E end else errorendprocedure E;beginif sym=+ then begin advance; E end else if sym) and sym# then errorendprocedure T;beginif sym=( or sym=a or sym=b or sym= then begin F; T end
33、else errorend编编 译译 原原 理理 chapter15习习题题procedure T;beginif sym=( or sym=a or sym=b or sym= then T else if sym=* then errorendprocedure F;beginif sym=( or sym=a or sym=b or sym= then begin P; F end else errorendprocedure F;beginif sym=* then begin advance; F endend 编编 译译 原原 理理 chapter15习习题题procedure P
34、;beginif sym=a or sym=b or sym= then advance else if sym=( thenbeginadvance; E;if sym=) then advance else errorendelse errorend;编编 译译 原原 理理 chapter15习习题题n4.3下面文法中,那些是下面文法中,那些是LL(1)文法的,說明理由文法的,說明理由n构造不带回溯的自上而下分析的文法条件构造不带回溯的自上而下分析的文法条件 1. 文法不含左递归,文法不含左递归, 2. 对于文法中每一个非终结符对于文法中每一个非终结符A的各个产生式的候选的各个产生式的候选
35、首符集两两不相交。即,若首符集两两不相交。即,若A 1| 2| n 则则 FIRST( i)FIRST( j) (i j) 3. 对文法中的每个非终结符对文法中的每个非终结符A,若它存在某个候选首,若它存在某个候选首符集包含符集包含 ,则,则FIRST(A)FOLLOW(A)= 如果一个文法如果一个文法G满足以上条件,则称该文法满足以上条件,则称该文法G为为LL(1)LL(1)文法文法。编编 译译 原原 理理 chapter15习习题题4.3.1SAbcAa| Bb| 是,满足三个条件4.3.2SAbAa|B| Bb| 对于A不满足条件34.3.3SABBAAa| Bb| A、B都不满足条件3
36、4.3.4SaSe|BBbBe| CcCe| d满足条件3编编 译译 原原 理理 chapter15习习题题解題思路:構造文法的預測分析表,通常應當按下列步驟進行: 1.消除文法的左遞歸(包括所有直接左遞歸和間接左遞歸) 2.對消除左遞歸后的文法,提取公因子 3.對經過上述改造后的文法,計算它的每個非終結符的FIRST集合和FOLLOW集合; 4.根據FIRST集合和FOLLOW集合構造預測分析表: 第1步對文法G的每個產生式A執行第1步和第3步; 第2步對每個終結符aFIRST(),把A加至MA,a中; 第3步若 FIRST(),則對任何b FIRST(A),把A加至MA,b中; 第4步把所
37、有無定義的MA,a標上“出錯標誌” 4.4對下面的文法:Expr-ExprExpr(Expr)|Var ExprTailExprTail-Expr| Varid VarTailVarTail(Expr)| (1)構造LL(1)分析表(2)給出對句子id- - id(id)分析過程编编 译译 原原 理理 chapter15习习题题 4.4對下面的文法:Expr-ExprExpr(Expr)|Var ExprTailExprTail-Expr| Varid VarTailVarTail(Expr)| (1)構造LL(1)分析表(2)給出對句子id- - id(id)分析過程解答:FIRST(Exp
38、r)=-,(,id FOLLOW(Expr)=),# FIRST(ExprTail)=-, FOLLOW(ExprTail)=),# FIRST(Var)=idFOLLOW(Var)=-,),# FIRST(VarTail)=(,FOLLOW(VarTail)=-,),# 编编 译译 原原 理理 chapter15习习题题 4.4對下面的文法:Expr-ExprExpr(Expr)|Var ExprTailExprTail-Expr| Varid VarTailVarTail(Expr)| (1)構造LL(1)分析表(2)給出對句子id- - id(id)分析過程-id()#ExprExpr-
39、ExprExprVar ExprTailExpr(Expr)ExprTaiExprTail-ExprExprTail ExprTail VarVarid VarTailVarTailVarTail VarTail(Expr)VarTail VarTail 编编 译译 原原 理理 chapter15习习题题-id()#ExprExpr-ExprExprVar ExprTailExpr(Expr)ExprTaiExprTail-ExprExprTail ExprTail VarVarid VarTailVarTailVarTail VarTail(Expr)VarTail VarTail 步驟符號
40、棧輸入串所用產生式0#Exprid- -id(id)#開始1#ExprTail varid- -id(id)#ExprVar ExprTail2#ExprTail varTail idid- -id(id)#Varid VarTail3#ExprTail varTail- -id(id)#出棧,輸入串後移4#ExprTail - -id(id)#VarTail 5#Expr - - -id(id)#ExprTail-Expr(2)給出對句子id- - id(id)分析過程编编 译译 原原 理理 chapter15习习题题-id()#ExprExpr-ExprExprVar ExprTailEx
41、pr(Expr)ExprTaiExprTail-ExprExprTail ExprTail VarVarid VarTailVarTailVarTail VarTail(Expr)VarTail VarTail 步驟符號棧輸入串所用產生式5#Expr - - -id(id)#ExprTail-Expr6#Expr-id(id)#出棧,輸入串後移7#Expr - -id(id)#Expr-Expr8#Exprid(id)#出棧,輸入串後移9#ExprTail Var id(id)#ExprVar ExprTail10#ExprTail VarTail id id(id)#Varid VarTai
42、l11#ExprTail VarTail(id)#出棧,輸入串後移(2)給出對句子id- - id(id)分析過程编编 译译 原原 理理 chapter15习习题题-id()#ExprExpr-ExprExprVar ExprTailExpr(Expr)ExprTaiExprTail-ExprExprTail ExprTail VarVarid VarTailVarTailVarTail VarTail(Expr)VarTail VarTail 步驟符號棧輸入串所用產生式11#ExprTail VarTail(id)#出棧,輸入串後移12#ExprTail )Expr(id)#VarTail(
43、Expr)13#ExprTail )Expr(id)#出棧,輸入串後移14#ExprTail ) )Expr(id)#Expr(Expr)15#ExprTail ) )Exprid)#出棧,輸入串後移16#ExprTail ) ) ExprTail Varid)#ExprVar ExprTail17#ExprTail ) ) ExprTail VarTail idid)#Varid VarTail(2)給出對句子id- - id(id)分析過程编编 译译 原原 理理 chapter15习习题题-id()#ExprExpr-ExprExprVar ExprTailExpr(Expr)ExprTa
44、iExprTail-ExprExprTail ExprTail VarVarid VarTailVarTailVarTail VarTail(Expr)VarTail VarTail 步驟符號棧輸入串所用產生式17#ExprTail ) ) ExprTail VarTail idid)#Varid VarTail18#ExprTail ) ) ExprTail VarTail)#出棧,輸入串後移19#ExprTail ) ) ExprTail)#VarTail 20#ExprTail ) )#ExprTail 21#ExprTail )#出棧,輸入串後移22# ExprTail#出棧,輸入串後
45、移23#ExprTail 成功(2)給出對句子id- - id(id)分析過程编编 译译 原原 理理 chapter15习习题题chapter51、令文法、令文法G1为:为: EE+T | T TT*F | F F(E) | i 证明证明E+T*F是它的一个句型,指出这个句型的所有是它的一个句型,指出这个句型的所有短语、直接短语和句柄。短语、直接短语和句柄。EE+TT*FT*F是句型是句型E+T*F相对于相对于T的短语的短语E+T*F句型句型E+T*F相对于相对于E的短语的短语T*F是句型是句型E+T*F相对于相对于T的直接短语的直接短语T*F是句柄是句柄编编 译译 原原 理理 chapter
46、15习习题题2、考虑下面的表格结构文法、考虑下面的表格结构文法G2: Sa | | (T) T T,S | S(1)给出)给出(a,(a,a)和和(a,a),(a),a)的最左和最右推导。的最左和最右推导。(a,(a,a)的最的最左左推导:推导:S (T) (T,S) (S,S) (a,S) (a,(T) (a,(T,S) (a,(S,S) (a,(a,S) (a,(a,a)(a,a),(a),a)的最的最左左推导:推导:S (T) (T,S) (S,S) (T),S) (T,S),S) (T,S,S),S) (S,S,S),S) (T,S),S,S),S) (S,S),S,S),S) (a,
47、S),S,S),S) (a,a),S,S),S) (a,a),S),S) (a,a),a),S) (a,a),a),a)编编 译译 原原 理理 chapter15习习题题(a,a),(a),a)的最右推导:的最右推导:S (T) (T,S) (S,S) (S,a) (T),a) (T,S,S),S) (S,S,S),S) (T,S),S,S),S) (S,S),S,S),S) (a,S),S,S),S) (a,a),S,S),S) (a,a),S),S) (a,a),a),S) (a,a),a),a)(a,(a,a)的最右推导:的最右推导:S (T) (T,S) (T,(T) (T,(T,S)
48、 (T,(T,a) (T,(S,a) (T,(a,a) (S,(a,a) (a,(a,a)编编 译译 原原 理理 chapter15习习题题2)指出)指出(a,a),(a),a)的规范归约及每一步的句柄。的规范归约及每一步的句柄。S(T)T,Sa(T)ST,ST,S(T)Sa(T)ST,SaSa句型句型句柄句柄归约规则归约规则(a,a),(a),a)aSa(S,a),(a),a)STS(T,a),(a),a)aSa(T,S),(a),a)T,STT , S(T),(a),a)(T)S(T)(S,(a),a)STS(T,(a),a)S(T,S,(a),a)T,STT , S(T,(a),a)aS
49、a(T,(S),a)STS(T,(T),a)(T)S(T)(T, S),a)T,STT , S(T),a)TS(T )(S,a)STS(T,a)aSa(T,S) T,STT , S(T)(T)S(T)S编编 译译 原原 理理 chapter15习习题题根据这个规范规约,给出根据这个规范规约,给出“移进移进归约归约”的过程,的过程,并给出它的语法树的自下而上的构造过程。并给出它的语法树的自下而上的构造过程。 #符号栈符号栈输入串:输入串:( ( ( a , a ) , , ( a ) ) , a ) # S(T)T,Sa(T)ST,ST,S(T)Sa(T)ST,SaSa(aS,TaSS)T, S
50、T(a S T)S)S T,a ST)S归约规则归约规则句柄句柄aSaSTSaSaT,STT , S(T)S(T)STSST,STT , S编编 译译 原原 理理 chapter15习习题题3、(1)计算练习计算练习2文法文法G2的的FIRSTVT和和LASTVT。 G2: Sa | | (T) T T,S | SFIRSTVT(S)= a, ,( FIRSTVT(T)=, , a, ,(LASTVT(S)=a, ,)LASTVT(T)=, , a, ,)S (T) ( ).T T,S , FIRSTVT(S). , a , , , , ( .T T,S LASTVT(T) ,. a ,, ,
51、, ) ,, , ,.S (T) ( FIRSTVT(T). ( a, ( , ( ( , ( ,.S (T)LASTVT(T) ). a ) , ) , ) ) , , ) .对待特殊地对待特殊地#,把它看作句型的开始和结束符把它看作句型的开始和结束符.根据根据#S#同理可得同理可得# a , # , # ( , .# #.a # , # , ) # , .#,)(a #,)(a=.=.1 1、文法是算术文法,且不含、文法是算术文法,且不含产生式。产生式。2 2、由优先关系矩阵可知,任何、由优先关系矩阵可知,任何两个终结符之间的优先关系不多两个终结符之间的优先关系不多于一种。于一种。综上,该
52、文法是算术优先文法。综上,该文法是算术优先文法。编编 译译 原原 理理 chapter15习习题题. ,a()#, a ( ) # .输入串输入串(a,(a,a)的算符优先过程。的算符优先过程。步骤步骤句型句型优先关系优先关系最左素最左素短语短语规约规约符号符号1#(a,(a,a)#2345678.(.a.,.(.a.,.a.).).#aS#(S,(a,a)#.,.(,(aa)#aS#(S,(S,a)#.,(,(a)#.aS#(S,(S,S)#.,(,(.)#.(,(#.)#S,ST#(S,(T)#.(T)S#(S,S)#.(,.)#.S,ST#(T)#.(.)#.(T)S#S#确认!确认!问题:没有依据最左素短语进行规约问题:没有依据最左素短语进行规约编编 译译 原原 理理 chapter15习习题题P134-5考虑文法SAS|b ASA|a1、列出这个文法的所有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育法规真题练习试卷B卷附答案
- 2024年光学纤维面板系列项目资金需求报告代可行性研究报告
- 第七章 面谈课件
- “双减”背景下小学数学作业设计的策略研究实施方案范文
- 2024年适用职工劳动协议格式文件
- 2024年专业期货交易中介服务协议
- 扬州大学封志明老师预测《导游基础知识》模拟试题参考答案
- 设备设施运行维护管理方案5篇
- 2024年化工业品买卖协议
- 2024阁楼房屋销售协议模板
- 2024-2030年中国危化品行业发展趋势与投资前景展望报告
- 中国企业投资缅甸光伏发电市场机会分析及战略规划报告2024-2030年
- 2024年广东省深圳市中考历史试题
- 化工(危险化学品)企业主要负责人、安管员安全生产管理专项培训考核试卷(附参考答案)
- 2024年人教版小学三年级语文(上册)期中考卷及答案
- 《信息化项目验收工作规范》
- 2024年全国软件水平考试之高级网络规划设计师考试重点黑金模拟题(详细参考解析)
- 经济学题库(200道)
- 2024年巴西私人安保服务市场机会及渠道调研报告
- 课《闻王昌龄左迁龙标遥有此寄》跨学科公开课一等奖创新教学设计
- 2024年江苏省连云港市中考英语真题(含解析)
评论
0/150
提交评论