LALR(1)分析方法.

Slides:



Advertisements
Similar presentations
专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
Advertisements

林園高中適性入學 高雄區免試入學 及 特色招生介紹 1. 國中學生 國中教育會考 1 ( 每年五月 ) 特色招生 術科考試 五專 免試入學 ( 每年六月 ) 特色招生 甄選入學 高中高職 免試入學 擇一報到 林園高中適性入學  入學管道流程 2.
說 劍 《莊子‧雜篇》─ 第 一 組 賴泊錞 謝孟儒 張維真 羅苡芸
中小学教育网课程推荐网络课程 小学:剑桥少儿英语 小学数学思维训练 初中:初一、初二、初三强化提高班 人大附中同步课程
控制方长投下的子公司,需要编制合并报表的演示思路
2011级高考地理复习(第一轮) 第三篇 中国地理 第一章 中国地理概况 第五节 河流和湖泊.
苏教版四年级数学下册 确定位置.
人民版必修三专题三复习 近代中国 思想解放的潮流 灵石中学 易吉华.
温 度 定义: 表示物体冷热程度的物理量。 国际单位:开尔文(K) 单位 常用单位:摄氏度(℃) 原理: 根据液体热胀冷缩的性质制成的。
行政诉讼法.
判断推理,必须学会这些 主讲老师:小胡胡 2016年3月25日20:00 YY频道:
第二章 复式记账原理*** 主要内容、重点难点: 1.会计要素与会计等式*** 2.会计科目与账户*** 3. 借贷记账法***
2 016 陕西广播电视台 餐饮娱乐行业广播投放方案 【第一版】.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
企劃撰寫.
江苏省2008年普通高校 招生录取办法 常熟理工学院学生处
第6章 LR分析程序及其自动构造 6.1 自下而上分析及其LR分析概述 6.2 LR (0) 分析 6.3 SLR(1) 分析
1、分别用双手在本上写下自己的名字 2、双手交叉
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
社会保险计划 私人经营社会保障的可能性 联邦健康保险制度系统的资金融通仍是一个亟待解决的问题 医疗费用的风险是一个基本风险吗?
補救教學實施策略 國立新竹教育大學 高淑芳.
新准则与老准则 主要变更内容.
2007年11月考试相关工作安排 各考试点、培训中心和广大应考人员:
06学年度工作意见 2006年8月30日.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
第一单元 人在社会中生活 综合探究一 从地图上获取信息 第1课时 带着地图定向越野间.
如何认识数学课程与教学 太原师范学院数学系 韩龙淑.
分式的乘除(1) 周良中学 贾文荣.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
第四章 制造业企业 主要经济业务核算.
必修Ⅰ 地球上的水 第三章.
104年振聲國中 志願選填個別序位 說明會 104年06月08日 輔導室關心您.
华东师范大学 软件工程硕士答辩名单 时间:2016年5月14日、15日.
中央广播电视大学开放教育 成本会计(补修)期末复习
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
市级个人课题交流材料 《旋转》问题情境引入的效果对比 高淳县第一中学 孔小军.
第2章 LR分 析 法 LR分析法是一种自下而上进行规范归约的语法分析方法,LR指“自左向右扫描和自下而上进行归约”。LR分析法比递归下降分析法、LL(1)分析法和算符优先分析法对文法的限制要少得多,对大多数用无二义的上下文无关文法描述的语言都可以用LR分析器予以识别,而且速度快,并能准确、及时地指出输入串的任何语法错误及出错位置。LR分析法的一个主要缺点是,若用手工构造分析器则工作量相当大,因此必须求助于自动产生LR分析器的产生器。
成才之路 · 语文 人教版 · 必修2 路漫漫其修远兮 吾将上下而求索.
我国三大自然区.
第十二单元 第28讲 第28讲 古代中国的科技和文艺   知识诠释  思维发散.
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
1.5 地球运动的地理意义(一) 自 转意义 一、昼夜交替 昼夜现象 1、昼夜更替 周期是24小时(1太阳日) 地球是一个不发光
中考语文积累 永宁县教研室 步正军 2015.9.
第1节 光的干涉 (第2课时).
电在我们日常生活、现代化社会中的应用: 电 是 什 么?.
小学数学知识讲座 应用题.
第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案. 第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案.
倒装句之其他句式.
第十三章 收入和利润.
Part5语法分析 授课:胡静.
编译原理复习.
成才之路 · 语文 人教版 · 必修2 路漫漫其修远兮 吾将上下而求索.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
第 12 章 交流電源 …………………………………………………………… 12-1 單相電源 12-2 單相三線式 ※ 12-3 三相電源.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
LR(1)分析方法.
Part5语法分析 授课:胡静.
第三课时 匀变速直线运动的位移与时 间的关系
第五章 自底向上分析方法 LR(0)分析法.
第五章 自底向上分析方法 LR(0)分析法 1 LR(K)分析法 第一个L表示:相应的语法分析将按自左至右的顺序扫描输入符号串;
文法等价变换 文法的等价 对文法G1和G2,若有:L(G1)=L(G2),则称文法G1和G2等价, 记作:G1=G2. 文法等价变换
第二章 词法分析3 非确定有限自动机NFA 非确定有限自动机(NFA)的定义 NFA的确定化:NFA到DFA的转换(子集法)
電子白板百萬小學堂 本活動建議搭配電子白板 學生最多可分成2~6組(請按組別按鈕) 老師可以視時間多少,來進行活動 每一組要回答十個問題。
大綱:整數的加法 整數的減法 蘇奕君 台灣數位學習科技股份有限公司
5.2.2平行线的判定.
§5.6 平面向量的数量积及运算律 南海中学数学组 周福隽.
1.理解力和运动的关系,知道物体的运动不需要力来维持。
第三章 植物的激素调节.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

LALR(1)分析方法

引进LALR(1)方法的目的 LR(1)语法分析方法的不足: 解决方法: 合并LR(1) 状态机中的等价状态. 在LR(0)状态机中用传播方式求每个项目集的展望符.

LALR(1)的思想来源 A→B, a B→, b LR(1)状态机中扩展项集A的闭包生成与LR(0)是一样的,只是增加了该状态下对B的展望符集bFirst(a)部分,以增加对B分析完成后(B→)是否进行归约的精准判断。 所以LR(1)状态机中会由于展望符的不同,使得同一核心项目集被分裂多个不同状态,造成状态数目的剧烈增加,导致时间和空间上的急剧上升; LALR(1)考虑将LR(1)中的核心相同的状态进行合并,从而大大减少状态数。

S R L = L a a b R b a a L b R b R L ZS SL=R SR LaR Lb RL # ZS SL=R SR LaR Lb RL # = # 1 ZS # 6 SL=  R R  L LaR Lb # 7 SL=R  # S R L = 2 SL=R RL # L a a b 9 RL # R b a a 8 LaR RL LaR Lb # 5 LaR RL LaR Lb # = 3 SR # L b R 4 Lb =# b R L 13 LaR # 12 Lb # 10 LaR #= 11 RL # = 4

S R L = L a a b R b a a L b R b R L ZS SL=R SR LaR Lb RL # ZS SL=R SR LaR Lb RL # = # 1 ZS # 6 SL=  R R  L LaR Lb # 7 SL=R  # S R L = 2 SL=R RL # L a a b 9 RL # R b a a 8 LaR RL LaR Lb # 5 LaR RL LaR Lb # = 3 SR # L b R 4 Lb =# b R L 13 LaR # 12 Lb # 10 LaR #= 11 RL # = 状态4和状态12 状态5和状态8 状态9和状态11 状态10和状态13

相关术语 LR(1)项目的心 假设[A, b]是LR(1)项目,则称其中的LR(0)部分A为该项目的心. 状态(项目集)的心 假设S是LR(1)状态(项目集),则称其中的每个LR(1)项目的LR(0)部分组成的集合为该状态(项目集)的心. 同心状态 称LR(1)状态机中具有相同心的状态为同心状态.

用SameCoreState(S)表示所有与S同心的状态集合; 用Merge(SS)表示同心状态集SS中所有状态的项目的合并.具体定义如下: 用Core(S)表示状态S的心部分; 用SameCoreState(S)表示所有与S同心的状态集合; 用Merge(SS)表示同心状态集SS中所有状态的项目的合并.具体定义如下: Core(S)={LR0item | [LR0item, a]S} SameCoreState(S)={S’ | Core(S’)=Core(S)} Merge(SS)={LR1item | LR1itemS, SSS}

A B a1 b1 A B a2 b2 A B a1/a2 b2/b2 S1 A B a1 b1 S2 A B a2 b2 S1,2 A B a1/a2 b2/b2 Core(S1)=Core(S2)= { A, B} SameCoreState(S1)={S1, S2} Merge({S1, S2}) ={ [ A, a1], [ A, a2], [B, b1], [B, b2]} ={[ A, {a1/ a2}], [B, {b1/ b2}]}

例:构造下列文法的LALR(1)状态机. Z → S S → L= R S → R L → aR L → b R → L

S R L = L a a b R b a a L b R b R L ZS SL=R SR LaR Lb RL # ZS SL=R SR LaR Lb RL # = # 1 ZS # 6 SL=  R R  L LaR Lb # 7 SL=R  # S R L = 2 SL=R RL # L a a b 9 RL # R b a a 8 LaR RL LaR Lb # 5 LaR RL LaR Lb # = 3 SR # L b R 4 Lb =# b R L 13 LaR # 12 Lb # 10 LaR #= 11 RL # = 10

S R L = L a a b R b a a L b R b R L ZS SL=R SR LaR Lb RL # ZS SL=R SR LaR Lb RL # = # 1 ZS # 6 SL=  R R  L LaR Lb # 7 SL=R  # S R L = 2 SL=R RL # L a a b 9 RL # R b a a 8 LaR RL LaR Lb # 5 LaR RL LaR Lb # = 3 SR # L b R 4 Lb =# b R L 13 LaR # 12 Lb # 10 LaR #= 11 RL # = 状态4和状态12 状态5和状态8 状态9和状态11 状态10和状态13

S R L = L a b a a b R a a L b R R R b L ZS SL=R SR LaR Lb ZS SL=R SR LaR Lb RL # = # 1 ZS # 6 SL=  R R  L LaR Lb # 7 SL=R  # S R L = 2 SL=R RL # L a a b a 9 RL # 9-11 RL =# R b a a 8 LaR RL LaR Lb # 5 LaR RL LaR Lb # = 5-8 LaR RL LaR Lb # = 3 SR # L L b R R 4-12 Lb =# 4 Lb =# b R L 13 LaR # 12 Lb # 4-12 状态4和状态12 状态5和状态8 状态9和状态11 状态10和状态13 10-13 LaR #= 10 LaR #= 11 RL # =

LALR(1) 分析表的构造 与LR(1)相同

a b = # S L R S5,8 S4,12 1 2 3 1 ACC 2 S6 R6 3 R3 4,12 R5 R5 5,8 S5,8 S5,8 S4,12 1 2 3 1 ACC 2 S6 R6 3 R3 4,12 R5 R5 5,8 S5,8 S4,12 11,9 10,13 6 S5,8 S4,12 11,9 7 7 R2 9,11 R6 R6 10,13 R4 R4 Z → S (1) S → L= R (2) S → R (3) L → aR (4) L → b (5) R → L (6)

合并后产生的LALR(1)冲突 无冲突状态的LR(1)活前缀状态机合并同心状态后得到的活前缀状态机可能存在冲突状态。只可能产生归约—归约冲突,但是不可能产生移入—归约冲突.

例如,假定Si、Sj是某一LR(1)状态机的两个状态, 其中,u1、u2、v1、v2、t1、t2分别为归约展望符集 , aVT. 在Si中有: u1v1=、u1{a}=、v1{a}=; 在Sj中有: u2v2=、u2{a}=、v2{a}=. 显然Si和Sj是同心状态,合并后得到新状态Sij : A B Ca u1 v1 t1 Si u2 v2 t2 Sj A B Ca u1∪ u2 v1 ∪ v2 t1 ∪ t2 Si 因: (u1∪ u2 ) {a}= (v1 ∪ v2 ) {a}= 所以不可能产生移入—归约冲突. 因: (u1∪ u2 ) {a}= (v1 ∪ v2 ) {a}= 所以不可能产生移入—归约冲突. 因: (u1∪ u2 )  (v1 ∪ v2 ) =? 所以可能产生归约—归约冲突.

LALR(1)文法的定义 对于一个文法,若按照上述算法构造的分析表中没有冲突动作,则称该文法为LALR(1)文法.

LALR(1)驱动程序 LALR(1)的驱动程序与LR(1)的驱动程序是相同的,可共用一个.

LALR(1)方法注意事项 LALR(1)对LR(1)状态机进行合并时,合并的同心状态的后继状态,也会出现同心状态,也需要进行合并。

LALR(1)方法特点 它具有SLR(1)的状态数少的优点和LR(1)的适用范围广的优点. LALR(1)状态机的状态个数和LR(0)状态机的状态个数相同,而其展望符则即不采用SLR(1)的Follow集方法,也不采用LR(1)的完全精确法.

LR方法小结* 从功能上看,各种语法分析方法的分析能力从小到大依次为: LR(0)<SLR(1)<LALR(1)<LR(1) 从活前缀状态机的状态数方面考虑: LR(0)和SLR(1)分析用的都是LR(0)状态机,因此它们的状态数相等; LALR(1)分析是把LR(1)状态机中的同心状态合并,显然合并同心状态后的LALR(1)状态机的状态个数和SLR(1)状态机的状态数是相等的; 因此从状态数方面看,各种语法分析方法的状态数有如下关系: LR(0)=SLR(1)=LALR(1)<LR(1)

例1. 有如下文法G[T]: TF*T TF F a 该文法是不是LR(0)文法,是不是SLR(1)文法.

3 4 2 1 5 文法G[T]的LR(0)活前缀状态机 Z → T T  F a a F T F  * T F Z → T  Z → T T  F*T T  F F  a 3 F →a  a a F 2 T F  *T T F  * 4 T F *  T T  F*T T  F F  a T F 1 Z → T  T T F * T  5 拓广产生式后的文法: Z → T TF*T TF Fa 因状态2存在移入-归约冲突,所以该文法不是LR(0)文法. 但因:Follow(T)={#}、*Follow(T),所以该文法为SLR(1)文法.

例2. 有如下文法G[S]: SAaB SB AaB Ab BA 该文法是不是SLR(1)文法,是不是LALR(1)文法.

所以该文法不是SLR(1)文法. a A Follow(B)={#,a} Z→S SAaB SB AaB Ab BA ZS Z→S SAaB SB AaB Ab BA ZS SAaB 2 SB A SAaB AaB BA Ab a BA 3 Follow(B)={#,a} S Aa B .... … a # 2 S3 /R6 R6 …. 所以该文法不是SLR(1)文法.

S B A a A a a b b B a a A b B B b A ZS SAaB SB AaB Ab BA # ZS SAaB SB AaB Ab BA # a # 1 ZS # 6 SAa  B B  A AaB Ab # 7 SAaB # S B A a 2 SAaB BA # A a a b 9 BA # B b a a 8 AaB BA AaB Ab # 5 AaB BA AaB Ab # a 3 SB # Z→S SAaB SB AaB Ab BA A b B 4 Ab a# b B A 13 AaB # 12 Ab # 10 AaB #a 11 BA # a

所以该文法是LALR(1)文法. S B A a A a a b b B a a A b B B b A ZS SAaB SB ZS SAaB SB AaB Ab BA # a # 1 ZS # 6 SAa  B B  A AaB Ab # 7 SAaB # S B A a 2 SAaB BA # A a a b 9 BA # b B a a 8 AaB BA AaB Ab # 5 AaB BA AaB Ab # a 3 SB # A b B 4 Ab a# b 13 AaB # B 所以该文法是LALR(1)文法. A 12 Ab # 状态4和状态12 状态5和状态8 状态9和状态11 状态10和状态13 10 AaB #a 11 BA # a

例3 .有如下文法G[S]: SaAd SbAc SaBc SbBd Ae Be 该文法不是LALR(1)文法,是LR(1)文法.

S S # aAd# aAd # A d a a ed# b B c e aed# be d# be c# b ed#  aec# ZS SaAd SbAc SaBc SbBd # S 1 ZS # S #  bed#  bec# aAd# aAd # A 4 SaAd # d 10 SaAd # a a ed# aec# 2 SaAd SaBc A   e B   e # d c b aBc# B 5 SaBc # c 11 SaBc  # aBc# e 6 A  e  B  e  d c aed# aec# S  aAd [1] S  bAc [2] S  aBc [3] S  bBd [4] A  e [5] B  e [6] be d# 9 A  e  B  e  c d be c# b ed# b ec# bA c# bAc# 3 SbAc SbBd A   e B   e # c d A 7 SbAc # c 12 SbAc  # e bB d# bBd# B 8 SbBd # d 13 SbBd  # LR(1)状态机

S A d a B c e b e e e A c B d LALR(1)状态机 ZS SaAd SbAc SaBc ZS SaAd SbAc SaBc SbBd # 1 ZS # A 4 SaAd # d 10 SaAd # a 2 SaAd SaBc A   e B   e # d c B 5 SaBc # c 11 SaBc  # e 6 A  e  B  e  d c S  aAd [1] S  bAc [2] S  aBc [3] S  bBd [4] A  e [5] B  e [6] b 9 A  e  B  e  c d e 6,9 A  e  B  e  c,d d,c e e 3 SbAc SbBd A   e B   e # c d A 7 SbAc # c 12 SbAc  # B 8 SbBd # d 13 SbBd  #