《2022年《编译原理》期末复习资料完整版 .pdf》由会员分享,可在线阅读,更多相关《2022年《编译原理》期末复习资料完整版 .pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、读书之法 ,在循序而渐进 ,熟读而精思编译原理期末复习资料【题 1】1.( a|b)* (aa|bb) (a|b)* 画出状态转换图。Ia Ib 1,2,3 2,3,4 2,3,5 2,3,4 2,3,4,6,7,8 2,3,5 2,3,5 2,3,4 2,3,5,6,7,8 2,3,4,6,7,8 2,3,4,6,7,8 2,3,5,7,8 2,3,5,6,7,8 2,3,4,7,8 2,3,5,6,7,8 2,3,5,7,8 2,3,4,7,8 2,3,5,6,7,8 2,3,4,7,8 2,3,4,6,7,8 2,3,5,7,8 Ia Ib 1 2 3 2 4 3 3 2 5 4 4 6
2、 5 7 5 6 7 5 7 4 6 新的状态转换图如下:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思(1) A=1,2,3 , B=4,5,6,7 Aa=2,4 (2) A=1,3 ,B=2 ,C=4,5,6,7 Aa=2B,Ab=3,5 (3) A=1 ,B=2 ,C=3,D=4,5,6,7(单元素可以不用看,必有,古先看D)Da=4,7D , Db=5,6D,
3、Aa=2B, Ab=3C, Ba=4D , Bb=3C, Ca=2B,Cb=5C,则有a b A B C B D C C B D D D D 2.( a*|b* )b(ba) *的状态转换图。Ia Ib 1,2,3,4 2,4 3,4,5,6,8 2,4 2,4 5,6,8 3,4,5,6,8 - 3,4,5,6,7,8 5,6,8 - 7 3,4,5,6,7,8 6,8 3,4,5,6,7,8 7 6,8 - 6,8 - 7 Ia Ib 1 2 3 2 2 4 3 - 5 4 - 6 5 7 5 6 7 - 7 - 6 新的状态转换图如下:名师归纳总结 精品学习资料 - - - - - -
4、- - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思化简:(用终结状态与非终结状态,然后输出状态一致分一类)。(1) A=1,2,6 , B=3,4,5,7 Aa=2 (2) A=1,2 ,B=6 ,C=3,4,7 ,D=5 Cb=5,6 (只要有一个不属于任何一个集合,就不行)(3) A=1,2 ,B=6 ,C=3 ,D=4,7 ,E=5 Ab=3,4 (4) A=1 , B=2 , C=6 , D=3 , E=4,7 ,
5、F=5 Aa=2B, Ab=3D, Ba=2B, Bb=4E,Ca=7E,Db=5F,Eb=6C,Fa=7E,Fb=5F a b A B D B B E C E - D - F E - C F E F 注意事项 :知识要点 :正则表达式:*|,|,)|(,)|( ,)( ,|,ababaabaabaababbaaaaaaaaaaa,*;baaba,)b(|或;abbaab)( 和;,*ababababababab;名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3
6、页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思,|*babaaabbaabbababababa*|baa是最左边一个字母一定是a,其余字母为ba、的任意组合,不包括。,|*aaaabaaabaababbabaaa 和若干个a(包括 0 的情形)后跟一个b 构成的符号串集合 ,|*abbbbabbbabbabaabbabaabaa 和 a 后跟若干个(包括0的情形) b 构成的符号串集合 状态转换图(有穷状态自动机):aabbac*aba |ab*aaa名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳
7、 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思*|ba*aba【题 2】1.求如下简单算术表达式文法enrG中语法变量的FOLLOW集。id|)(|*|EFFTTFTTTEETEE 解答 : (1)求表达式文法的语法符号的FIRST 集:FIRST(F)= ( , id FIRST(T)=FIRST(F)=(, id FIRST(E)=FIRST(T)=(, id FIRST(E)=+, FIRST(T)=*, FIRST(+)=+, FIRST(*)=* FIRS
8、T(()= ( FIRST())= ) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思FIRST(id)=id (2)求表达式文法的语法变量的 FOLLOW 集:FOLLOW(E) = #, ) FOLLOW(E)= FOLLOW( E ) = #, ) FOLLOW(T) = FIRST(E)- FOLLOW(E) FOLLOW(E)= +,),# FOLLOW(T)
9、= FOLLOW(T)= +,),# FOLLOW(F) = FIRST(T ) FOLLOW(T) FOLLOW(T) =*,+,),# 6 知识点 First集合的求法: First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的 First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合1. 直接收取:对形如U-a的产生式(其中a 是终结符),把 a 收入到 First(U)中2. 反复传送:对形入U-P1P2P3 Pn 的产生式(其中P是非终结符),应先把 First(P1)中的全部内容传送到 Fi
10、rst(U)中, 如果 P1中有 ,把 First(P2)中的内容传送到First(U)中, 类推直到Pi 中无 。Follow 集合的求法: Follow集合是针对非终结符而言的,Follow(U) 所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“ $”是识别符号的后随符, 先直接加入到S中。1. 直接收取:注意产生式右部的每一个形如“Ua ”的组合,把a 直接收入到Follow(U) 中。2. 直接收取:对形如“ UP ”(P是非终结符 ) 的组合,把First(P)中非 收入到 Follow(U) 中。3. 反复传送:对形如UaP的产生式(其中P是非终结符)或U-aPQ
11、(P,Q 为非终结符且Q中含 ) ,应把 Follow(U) 中的全部内容传送到Follow(P)中。 例 文法:SABcAa|Bb|First集合求法 : 能由非终结符号推出的所有的开头符号或可能的,但要求这个开头符号是终结符号。如此题 A可以推导出a 和 ,所以 FIRST(A)=a, ;同理 FIRST(B)=b, ;S 可以推导出aBc,还可以推导出bc,还可以推导出c,所以 FIRST(S)=a,b,cFollow 集合的求法 :紧跟随其后面的终结符号或。但文法的识别符号包含,在求的时候还要考虑到 。具体做法是把所有包含你要求的符号的产生式都找出来,再看哪个有用。Follow (S)
12、=如求A 的,产生式: SABc Aa| ,但只有SABc 有用。跟随在A 后面的终结符号是FIRST( B)=b, ,当FIRST(B)的元素为 时,跟随在A 后的符号就是c,所以Follow(A)=b,c同理 Follow (B)=c2.对下面的文法G :|)(|*|baEPFFPFFTTFTTEETEE解: (1)计算这个文法的每个非终结符的FIRST 集和 FOLLOW 集。FIRST 集合有:FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)=(,a,b,; FIRST(E)=+, (1)计算这个文法的每个非终结符的FIRST 集和FOLLOW 集。(2) 证明这
13、个方法是LL(1) 的。(3) 构造它的预测分析表。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思FIRST(T)=FIRST(F)=FIRST(P)=(,a,b,; FIRST(T)=FIRST(T) =(,a,b, ; FIRST(F)=FIRST(P)=(,a,b,; FIRST(F)=FIRST(P)=*, ; FIRST(P)=(,a,b,; FOLLOW 集
14、合有:FOLLOW(E)=),#; FOLLOW(E)=FOLLOW(E)=),#; FOLLOW(T)=FIRST(E) FOLLOW(E)=+,),#;/不包含 FOLLOW(T)=FOLLOW(T)=FIRST(E) FOLLOW(E)=+,),#; FOLLOW(F)=FIRST(T)FOLLOW(T)=(,a,b,+,),#;/不包含 FOLLOW(F)=FOLLOW(F)=FIRST(T) FOLLOW(T)=(,a,b,+,),#; FOLLOW(P)=FIRST(F)FOLLOW(F)=*,(,a,b,+,),#;/不包含 (2)证明这个方法是LL(1) 的。各产生式的SELE
15、CT 集合有:SELECT(E-TE)=FIRST(T)=(,a,b,; SELECT(E-+E)=+; SELECT(E- )=FOLLOW(E/)=),# SELECT(T-FT)=FIRST(F)=(,a,b,; SELECT(T-T)=FIRST(T)=(,a,b,; SELECT(T- )=FOLLOW(T/)=+,),#; SELECT(F-PF)=FIRST(P)=(,a,b,; SELECT(F-*F)=*; SELECT(F- )=FOLLOW(F)=(,a,b,+,),#; SELECT(P-(E)=( SELECT(P-a)=a SELECT(P-b)=b SELECT(
16、P-)= 可见,相同左部产生式的SELECT 集的交集均为空,所以文法GE 是 LL(1) 文法。(3)构造它的预测分析表。文法 GE的预测分析表如下:【题 3】考虑下面的文法eG:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思idFEFFTTFTTFTTEETEETE)8()()7(/)6(*)5()4()3()2()1 (解答 :(1)所有语法变量的FIRSTOP
17、集合和 LASTOP 集合如下:),)(),/,*,)(),/,*,)(,)(,/,*,)(,/,*,)(idFLASTOPidTLASTOPidELASTOPidFFIRSTOPidTFIRSTOPidEFIRSTOP(2)文法eG的算符优先关系表算符关 系算 符+ - * / ( ) id + (id 因为文法中任意两个终结符之间只存在一种关系,因此该文法为算符优先文法。(3)文法eG的算符优先函数优先函数算符+ - * / ()id # f(栈内优先函数)2 2 4 4 0 4 4 0 g(栈外优先函数)1 1 3 3 5 0 5 0 (4)表达式21idid的算符优先分析过程步骤栈输入
18、串优先关系动作(1)求出所有语法变量的FIRSTOP 集合和 LASTOP 集合。(2)构造文法eG的算符优先关系表,并判断eG是否为算符优先文法。(3)计算文法eG的算符优先函数。(4)给出表达式21idid和 id*(id+id) 的算符优先分析过程。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思1 # 1id+2id# 2 #1id+2id# #1id移进1id3
19、 #F +2id# # 用idF归约4 #F+ 2id# 移进 + 5 #F+2id# 移进2id6 #F+F # +# 用idF归约7 #E # # 用TEE归约表达式 id*(id+id) 的算符优先分析过程步骤栈 S 优先关系当前输入字符R 输入字符串0 # * (id+id)# 2 #N * (id+id)# 3 #N* (id+id)# 4 #N*( + id)# 6 #N*(N + id)# 7 #N*(N+ ) # 9 #N*(N+N ) # 10 #N*(N ) # 11 #N*(N) # 12 #N*N # 13 #N 停止# 2.已知文法GS 为:名师归纳总结 精品学习资料
20、 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思S-a|(T) T- T,S|S (1) 计算 GS 的 FIRSTVT 和 LASTVT 。(2) 构造 GS 的算符优先关系表并说明GS 是否为算符优先文法。(3) 计算 GS 的优先函数。(4) 给出输入串(a,a)# 的算符优先分析过程。解:( 1)各符号的FIRSTVT 和 LASTVT :(2)算符优先关系表:因为文法中任意两个终结符之间
21、只存在一种关系,因此该文法为算符优先文法。(3)对应的算符优先函数为:(4)句子 (a,a)#分析过程如下:知识点 FIRSTVT 及 LASTVT 求法构造集合FIRSTVT ( P )的两条规则。(i)若有产生式Pa ,或 PQa ,则a FIRSTVT ( P ) 。(ii)若a FIRSTVT ( P ) ,且有产生式PQ ,则 a FIRSTVT ( P ) 。构造集合FIRSTVT ( P )的两条规则(i)有产生式P a,或 PaQ,则 aLASTVT (P) 。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 -
22、- - - - - - - - - - - - - - 第 10 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思(ii)若a LASTVT ( Q ) ,且有产生式PQ ,则 a FIRSTVT ( P ) 。【题 4】1.令文法 G:S BB B aB B b 判断该文法是否LR(1)文法,若是构造LR(1)分析表。解 1)将文法G拓广为 G: (0)SS (1) S BB (2)BAb ( 3)Bb 2) 求出 G的非终结符的FOLLOW 和 FIRST集A FOLLOW(A) FIRST(A) S # a,b S # a,b B a,b,#
23、a,b 3)构造个G的 LR(1) 的项目集族及GO 函数 B S B a b B a a a B b b 3) 判断文法是否为LR (1)文法。该文法构出的CI0, I1, I2, I3, I4, I5, I6, I7, I8, I9 中,每个状态集均无冲突,所以该文法是LR (1)文法。4)构造 LR(1) 分析表状态ACTION GOTO a b # S B 0 S3 S4 1 2 1 acc 2 S6 S7 5 3 S3 S4 8 4 r3 r3 5 r1 6 S6 S7 7 r3 8 r2 r2 9 r2 填空题1. 消除左递归(P124)文法左递归问题:一个文法是含有左递归的,如果
24、存在非终结符P。PP直接消除见诸于产生式中的左递归:I0:S .S,# S .BB,# B .aB,a|b B .b,a|bI1:S S.,#I4:Bb.,a|bI2:SB.B,# B.Ab,# B.b,#I3:Ba.B,a|b B.aB,a|b B.b,a|bI5:SBB.,#I6:Ba.B,# B.Ab,# B.b,#I8:BaB.,a|bI9:BaB.,#I7:Bb.,#名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 15 页 - - - - -
25、 - - - - 读书之法 ,在循序而渐进 ,熟读而精思假定关于非终结符P 的规则为PP | ,其中不以 P 开头。 那么,我们可以把P 的规则等价地改写为如下的非直接左递归形式:P PP P|一般而言, 假定关于 P 的全部产生式是PP 1 | P 2 | | P m | 1 | 2| n,其中,每个都不等于,而每个都不以 P开头 ,那么,消除P 的直接左递归性就是把这些规则改写成:P1P | 2P | | nPP1P | 2P | | mP | 例 文法EET | T TT*F | F F (E) | i 经消去直接左递归后变成:ETEE +TE | TFTT *FT | F (E) |
26、i 例如文法SQc|c Q Rb|b RSa|a 虽没有直接左递归,但S、Q、R 都是左递归的SQcRbcSabc 一个文法消除左递归的条件:1)不含以为右部的产生式(无空产生式);2)不含回路。PP消除左递归的算法:1. 把文法 G 的所有非终结符按任一种顺序排列成P1,P2,Pn;按此顺序执行;2. FOR i:=1 TO n DO BEGIN FOR j:=1 TO i-1 DO 把形如 PiPj 的规则改写成Pi 1 | 2 | k ; (其中 Pj 1| 2| k 是关于 Pj 的所有规则 ) 消除关于Pi 规则的直接左递归性END 3. 化简由 2 所得的文法。即去除那些从开始符号
27、出发永远无法到达的非终结符的产生规则。例 考虑文法G(S) SQc|c Q Rb|b R Sa|a 令它的非终结符的排序为R、Q、S。对于 R,不存在直接左递归。把 R 代入到 Q 的有关候选后,把Q 的规则变为QSab | ab | b,现在的 Q 不含直接左递归。把 Q 代入到 S的有关候选后,S变成 SSabc | abc | bc | c,由于 S Sabc | abc | bc | c存在直接左递归,消除 S 的直接左递归后:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - -
28、 - - - 第 12 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思SabcS | bcS | cSS abcS | QSab |ab | b RSa|a 关于 Q 和 R 的规则已是多余的,化简为:SabcS | bcS | cSSabcS | 注意: 由于对非终结符排序的不同,最后所得的文法在形式上可能不一样。但不难证明, 它们都是等价的。同样: 例 考虑文法 G(S) SQc|c Q Rb|b R Sa|a 非终结符排序选为S、Q、R,那么,R Qca|ca|a R Rbca|bca|ca|a 最后所得的无左递归文法是:SQc | c QR
29、b | b RbcaR | caR |a RR bca R | 不同排序所得的文法的等价性是显然的。2.文法的分类 (Chomsky 体系 )(P41)(1)短语结构文法(PSG)如果 G 满足文法定义的要求,则是型文法(短语结构文法PSG: Phrase Structure Grammar ) 。L(G) 为 PSL。(1)上下文有关文法(CSG) 如果对于P,均有 |成立 ( 除外 ),则称为型文法。即:上下文有关文法 (CSG)L(G) 为 1 型/上下文有关 /敏感语言 (CSL)。其他定义方法: 设文法 GS,若 P 中任一产生式 的形式为21A21,其中1,2(V T) *, ,A
30、 V。(2)上下文无关文法(CFG) 如果对于P,均有 |,并且 V 成立,则称 G 为型文法。 即:上下文无关文法(CFG:) L(G) 为 2 型/上下文无关语言(CFL) ,CFG 能描述程序设计语言的多数语法成分。(3)正规(则)文法(RG) 设 ,, wT+或为,如果对于P,均具有如下形式:右线性 (Right Linear) 文法:BA或A左线性 (Left Linear) 文法:BA或A都是型文法(正规文法RG),L(G) 为 3 型 /正规集 /正则集 /正则语言( RL) ,能描述程序设计语言的多数单词。左、右线性文法不可混用。例正规文法( RG) :G1:S0 | 1 |
31、00 | 11 G3:S0 | 1 | 0A | 1B,A 0,B 1 G5:S0 | 0S 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思G8:AaS | bS | cS | a | b | c 上下文无关文法(CFG) :G2:SA | B | AA | BB, A 0, B 1 G4:SA | B | BB, A 0,B 1 G14:S0 | 1 | 2 | 3
32、 | 0S0 | 1S1 | 2S2 | 3S3 上下文有关文法(CSG) :G:SCD CaCA CA Ca CaDdaD dAcdec = (, T, )是一个文法 , P * G 是 0 型文法, L(G) 是 0 型语言; -其能力相当于图灵机* |:G 是 1 型文法, L(G) 是 1 型语言 (除 );-其识别系统是线性界限自动机* N : G 是 2 型文法, L(G) 是 2 型语言 ;-其识别系统是不确定的下推自动机* AaB 或 Aa: G 是右线性文法,L(G) 是 3 型语言ABa 或 A : G 是左线性文法,L(G) 是 3 型语言 -其识别系统是有穷自动机3.逆
33、波兰表示法,请注意 IF-ELSE及 FOR 循环的特例逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之间,所以,这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929 年提出了另一种表示表达式的方法。按此方法,每一运算符都置于其运算对象之后,故称为后缀表示。将一个普通的中序表达式转换为逆波兰表达式的一般算法是:(1)首先构造一个运算符栈,此运算符在栈内遵循越往栈顶优先级越高的原则。(2)读入一个用中缀表示的简单算术表达式,为方便起见,设该简单算术表达式的右端多加上了优先级最低的特殊符号“#”。(3)从左至右扫描该算术表达式,从第一
34、个字符开始判断,如果该字符是数字,则分析到该数字串的结束并将该数字串直接输出。(4)如果不是数字,该字符则是运算符,此时需比较优先关系。做法如下:将该字符与运算符栈顶的运算符的优先关系相比较。如果,该字符优先关系高于此运算符栈顶的运算符,则将该运算符入栈。倘若不是的话,则将栈顶的运算符从栈中弹出,直到栈顶运算符的优先级低于当前运算符,将该字符入栈。(5)重复上述操作(3)-(4) 直至扫描完整个简单算术表达式,确定所有字符都得到正确处理,我们便可以将中缀式表示的简单算术表达式转化为逆波兰表示的简单算术表达式。逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出。逆波兰表达式又叫做后缀
35、表达式。这个知识点在数据结构和编译原理这两门课程中都有介绍,下面是一些例子:正常的表达式逆波兰表达式a+b - a,b,+ a+(b-c) - a,b,c,-,+ a+(b-c)*d - a,b,c,-,d,*,+ a+d*(b-c)-a,d,b,c,-,*,+ a=1+3 - a=1,3 + http=(smtp+http+telnet)/1024 -http=smtp,http,telnet,+,+,1024,/ 例 9 将下列语句翻译为逆波兰表示( 后缀式 ) 、三元式和四元表示: a:=(b+c)*e+(b+c)/f 【解】解题思路把中缀式转换为后缀式的简单方法:按中缀式中各运算符的优
36、先规则,从最先执行的部分开始写,一名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 15 页 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思层层套。如ab+cada+b e,先把 b+c 写为 bc+;然后把a套上去,成为abc+;再把ad 表示为 ad;然后把套上去,成为abc+ad,依此类推。练习给出下列表达式的逆波兰表示edcba/)(*())(*dcba())()(cbba句柄设有 CFG G=(V ,T,P,S),G
37、 的句型的最左直接短语称为句柄。附:定义 2.27 设有 CFG G=(V ,T,P, S), (VT)* ,S*A,A,则称 是句型的相对于变量A 的短语 (phrase);如果此时有A ,则称 是句型的相对于变量A 的直接短语。在无意义冲突时,简称为句型的直接短语 ,直接短语也叫做简单短语。例 对于文法)( |*|/|*|c|id:12EEEEEEEEEEEEEEG的Ec*id1句型来说,它的短语有:1id,c,Ec*,Ec*id1。其中直接短语有:1id,c。而1id就是句型Ec*id1的句柄。6.综合属性和继承属性2012-20XX 年已经取消这题如果节点的属性值是通过分析树中该节点或
38、其子节点的属性值计算出来的,则称其为综合属性;如果节点的属性值是由该节点、该节点的兄弟节点或父节点的属性值计算出来的,则称其为继承属性。例 1 文法符号的属性有综合属性和继承属性两种。例 2 S属性文法中的每个文法符号,只含有综合属性。例 3 终结符只有综合属性,它们有词法分析器提供。7.语法制导定义,出现在第四大题的最后一步(0) s-sprintf( “0” ) ; (1) s-BB printf( “1” ) ; (2) B-aB printf( “2” ) ; (3)B-b printf( “3” ) ; 输入 #bab# 输出结果是33210 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 15 页 - - - - - - - - -