计算机科学与技术第二章ppt,计算机科学与技术-编译原理-第二章重点.ppt

计算机科学与技术-编译原理-第二章重点.ppt

* 自下而上分析法举例 例2解: a b b c d e (1) a b b c d e A A (2) a b b c d e A A (3) a b b c d e A A (4) B a b b c d e A A (5) B A S (1)S→ aAcBe (2) A→ b (3)A→ Ab (4) B→ d * 自下而上分析法存在的问题 文法和语言 可归约串的问题;(∵ 该分析的每一步就是从当前串中找一个子串(称“可归约串”),将它归约到某个非终结符号) 自下而上分析法的关键就是找哪个子串是“可归约串”,哪个不是“可归约串”。例如上例中的(3) a b b c d e A A (3) —用产生式(2)而非(3),则不能归约到S 因此必须精确定义“可归约串”,事实上存在着种种不同的方法刻画“可归约串”,对这个概念的不同定义,形成了不同的自下而上的分析法。在“规范归约”的分析中,用“句柄”来刻画“可归约串”。 * 短语、直接短语、句柄 文法和语言 1、短语: 令文法G,开始符号为S,αβδ是G的句型, 即S αβδ),如果S αAδ且A β,则称β是句型αβδ相对于非终结符A的短语。 2、直接短语 如短语中有A=>β,则称β是句型相对于规则A→ β的直接短语。 3、句柄 一个句型的最左直接短语称为该句型的句柄。 * 解题方法 文法和语言 例:文法G[E]: E→ T | E+T T→ F | T*F F→ (E) | i 证明i+i*i是G的一个句型,并指出这个句型的所有短语、直接短语、句柄。 证明:E E+T E+T*F E+T*i E+F*i E+i*i T+i*i F+i*i i+i*i * 接上例 文法和语言 语法树: E E + T T T * F F F i3 i1 i2 第1层 i1+i2*i3 —相对于E 第2层 i1 —相对于E ; i2*i3 —相对于T 第3层 i1 ,i2 —相对于T; i3 —相对于F 第4层 i1 ,i2 —相对于F(F→ i直接短语) 第5层 ∴ i+i*i是G的一个句型,其中i1 , i2 , i3, i2*i3 , i1+i2*i3 都是句型i1+i2*i3 的短语,且i1 , i2 , i3 为直接短语, i1为句柄 * 分析说明 文法和语言 (2)作为“短语”的两个条件是不可缺少的,仅仅有A β,未必意味着β就是句型αβδ的一个短语,因为还需要有S αβδ这个条件。 例如:上例中有E i1+i2,但i1+i2并不是该句型的一个短语,因为不存在从E(开始符号)到E* i3的推导。 (1)短语、直接短语、句柄是针对某一句型(S α )而言的; * 解题方法 ⒈先证明前提 ⒉给出语法树(注意文法是否是二义性的)  如题文法G[E]: E→ E+E|E*E|(E) | i 证明i+i*i是G的一个句型,并指出这个句型的所有短语、直接短语、句柄。 ⒊根据每颗语法树得出短语、直接短语、句柄  (注意编号) * 练习1题目 文法G[T]: T→ F | T*F F →F ↑ P | P P→ (T) | i 证明T*P ↑(T*F)是文法G的一个句型,并指出这个句型的所有短语、直接短语、句柄。 * 练习1解答 证明:T T*F T*F↑P T*F↑(T) T*F↑(T*F) T*P↑(T*F) 语法树: T T * F F ↑ P P T ( ) T * F 第1层 T*P↑(T*F) —相对于T 第2层 P↑(T*F) —相对于F; 第3层 P —相对于F; (T*F) —相对于P 第4层 T*F —相对于T 第5层 ∴ T*P↑(T*F)是G的一个句型,其中T*F , P , (T*F), P↑(T*F), T*P↑(T*F) 都是该句型的短语,且T*F , P 为直接短语, P为句柄 T→ F | T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值