第五章 自底向上分析方法 LR(0)分析法.

Slides:



Advertisements
Similar presentations
七年级数学校本课程 台山市任远中学 李锦明. 1. 最古老的过河问题 1. 最古老的过河问题 一个农民携带一只狼,一只羊和一 箱卷心菜,要借助一条小船过河。 小船上除了农民只能再带狼、羊、 卷心菜中的一样。而农民不在时, 狼会吃羊,羊会吃菜。农民如何过 河呢?
Advertisements

第七节 心 悸 郑祖平. 一、概述 心悸是一种自觉心脏跳动的不适感或心 慌感。当心率加快时感到心脏跳动不适, 心率缓慢时则感到搏动有力。心悸时,心 率可快、可慢,也可有心律失常,心率和 心律正常者亦可有心悸。 一般认为与心肌收缩力心搏量的变化及 患者的精神状态注意力是否集中等多种因 素有关。
用藥常識知多少? 五乙李麗娜 心寶的故事 心寶哪裡錯了? 說一說藥袋上有什麼資訊? 姓名 怎麼用(一天使用幾次? ) 藥的用途對症嗎? 藥品和外觀 副作用 注意事項 保存期限與方法 成藥有沒有衛生署許可證字號.
C A D C D.
必修2 第一单元 古代中国经济的基本结构和特点
600年前,鄭和率領世界上最強大的艦隊,浩浩蕩蕩的駛入印度洋,展開一場「文化帝國」的海上大秀。
第四章 组合逻辑电路 第 四 章 组 合 逻 辑 电 路.
第五单元 社会生活的变迁 第1课时 衡量变化的尺子 ——— 时间和纪年 新围初中 王济洪.
歷史建築清水國小宿舍群修復工程 施工說明會
手太阳小肠经.
编 译 原 理 指导教师:杨建国 二零一零年三月.
江苏省2008年普通高校 招生录取办法 常熟理工学院学生处
第6章 LR分析程序及其自动构造 6.1 自下而上分析及其LR分析概述 6.2 LR (0) 分析 6.3 SLR(1) 分析
校园信息管理系统 河北科技大学网络中心 2000/4/10.
成才之路 · 语文 人教版 • 中国古代诗歌散文欣赏 路漫漫其修远兮 吾将上下而求索.
游泳四式技術分析暨初級教法.
习题与试题 认真复习,重点是掌握基本概念。基本概念掌握了,相当一部分试题的解就有了
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
发电厂及变电站电气设备 8 短路电流计算 主 编:李家坤 朱华杰 主 审:陈光会
第一节 产后出血 了解:了解产后出血的概述。 熟悉:产后出血的病 因病机。 掌握:产后出血诊断处理及 预防调摄。 教学目标.
第7章 数字信号处理中的有效字长效应.
述 职 报 告 单 位:机械学院 实践教学部 述职人:钮平章.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
第三单元 发展社会主义民主政治.
第2章 LR分 析 法 LR分析法是一种自下而上进行规范归约的语法分析方法,LR指“自左向右扫描和自下而上进行归约”。LR分析法比递归下降分析法、LL(1)分析法和算符优先分析法对文法的限制要少得多,对大多数用无二义的上下文无关文法描述的语言都可以用LR分析器予以识别,而且速度快,并能准确、及时地指出输入串的任何语法错误及出错位置。LR分析法的一个主要缺点是,若用手工构造分析器则工作量相当大,因此必须求助于自动产生LR分析器的产生器。
LR与LL分析 编译原理习题课二 胡云斌 PB
3.3 资源的跨区域调配 ——以南水北调为例 铜山中学 李启强.
翰林自然 六年級上學期 第二單元 聲音與樂器.
上海交通大学 概率论第一、二章测验题 大学数学教研室 童品苗.
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
专题复习 时间的计算 ---地方时和区时 吴江市汾湖高级中学 丁竹芳.
2015年3.8节 哈尔滨妇科体检套餐.
! 温故知新 上下文无关文法 最左推导 最右推导 自上而下 自下而上 句柄 归约 移进-归约冲突 移进-归约分析 递归下降预测分析
第20章 门电路和组合逻辑电路 20.1 脉冲信号 20.2 基本门电路及其组合 20.3 TTL门电路 20.4 CMOS门电路
Chapter4 Syntax Analysis
编译原理 第一章 编译程序概述 第二章 PL/0编译程序的实现 第三章 文法和语言 第四章 词法分析 第五章 自顶向下语法分析方法
Part5语法分析 授课:胡静.
行動研究就是一種行動性的研究,由行動者來進行研究,而不是由外於行動領域的學者與與科學家來進行,研究的問題也取自行動。
2.2 语法分析器生成器YACC 分析器的构造步骤: 产生式→识别活前缀的DFA→分析表(+驱动器) YACC概述
第6章 自底向上优先分析法 自底向上优先分析概述 简单优先分析 算符优先分析 返回目录.
LR(1)分析方法.
Part5语法分析 授课:胡静.
LL(1)分析方法 LL(1)是LL(k)的特例,其中的k则表示向前看k个符号. LL(1)方法和递归下降法属于同一级别的自顶向下分析法.
第五章 语法分析——自下而上分析 自上而下分析法(Top-down) 自下而上分析法(Bottom-up) 国防科技大学计算机系602教研室.
第五章 统计量及其分布 §5.1 总体与样本 §5.2 样本数据的整理与显示 §5.3 统计量及其分布 §5.4 三大抽样分布
编译原理 第四章 语法分析—自上而下分析 编译原理.
语法分析 本章内容 语法分析器:把词法分析生成的词法单元流翻译成语法分析树(parse tree)
现代控制理论.
LL(1)分析法 复 习 LL分析程序构造及分析过程 输入串 符号栈 执行程序 此过程有三部分组成: 分析表 执行程序 (总控程序)
迴歸分析 行銷、財務、人資研究.
第五章 自底向上分析方法 LR(0)分析法 1 LR(K)分析法 第一个L表示:相应的语法分析将按自左至右的顺序扫描输入符号串;
LALR(1)分析方法.
第五章 语法分析-自下而上分析 5.1 自下而上分析的基本问题 Figure5.5LR演示自下而上分析 i+(i+i)*i
第四章 自底向上分析方法 主要内容 自底向上分析的基本思想 简单优先分析方法 LR类分析方法 LR(0)分析方法 SLR(1)分析方法
文法等价变换 文法的等价 对文法G1和G2,若有:L(G1)=L(G2),则称文法G1和G2等价, 记作:G1=G2. 文法等价变换
電子白板百萬小學堂 本活動建議搭配電子白板 學生最多可分成2~6組(請按組別按鈕) 老師可以視時間多少,來進行活動 每一組要回答十個問題。
自底向上的语法分析 4.5.
微信商城系统操作说明 色卡会智能门店.
第五章 自底向上分析方法 LR(0)分析法 1 LR(K)分析法 第一个L表示:相应的语法分析将按自左至右的顺序扫描输入符号串;
95年度高屏醫療網 以病人為中心之醫療照護— 以弱勢族群為重點 期末報告
SLR(1)分析方法.
創造不一樣的人生 -如何與身心障礙者接觸 新竹教育大學 薛明里.
第四章 语法分析 南京大学计算机系 戴新宇
4月电商补充活动 执行手册 2016年4月 别克事业部.
第五章 语法分析—自下而上分析 自下而上分析法:即是从输入串开始,逐步进行 “归约”,直至归约到文法的开始符号;
编译原理 第五章 语法分析——自下而上分析 编译原理.
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
编译原理 第一章 编译程序概述 第二章 PL/0编译程序的实现 第三章 文法和语言 第四章 词法分析 第五章 自顶向下语法分析方法
以下資料極度機密 使用手冊 1.謹慎閱讀並熟記在心… 因為你可能只有這次機會 2.分析方式,為本門絕招,盡量外傳!! 3.可反覆練習熟練!
Presentation transcript:

第五章 自底向上分析方法 LR(0)分析法

活前缀状态机提供的语法分析信息: 1、移入信息:如果活前缀状态机中状态ISi包含形如Aa的项目,即ISi有a的输出边,其中a是终极符,则表示ISi状态遇当前输入符为a时应将其移入符号栈,状态机沿着其a的输出边转向其后继状态。 2、归约信息:如果状态ISi包含形如X Y1 Y2 ……Yn的项目,则表示ISi状态可按该产生式做归约动作,归约后状态机回退n个(Y1 Y2 ……Yn的长度)状态至状态ISj,随后沿着ISj的X输出边转向其后继状态。

语法分析过程的直观描述: a d e c # 符号栈 # a B d e c B 状态栈 2 5 6 3 4 1 例1 G[S]: S → aBc[1] B → e[2] B → dB[3] S → aBc [1] a S → aBc[1] B → e[2] B → dB[3] 1 B S → aBc[1] 2 S →aBc[1] 3 c e B → e [2] 4 d d e B → dB [3] B → e[2] B → dB[3] 5 B B → dB [3] 6

# X1 X2 … Xk Xt Si0 Si1 Si2 Sik Sit aiai+1…an # # X1 X2 … Xk Xt Si0 活前缀状态机提供的语法分析信息(续) 设当前格局是: # X1 X2 … Xk Xt Si0 Si1 Si2 Sik Sit aiai+1…an # 移入动作:设Sit的ai输入边所指向的状态为S* # X1 X2 … Xk Xt Si0 Si1 Si2 Sik Sit ai S* 归约动作:设按A→Xk+1Xk+2…Xt进行归约,则首先归约为A # X1 X2 … Xk Si0 Si1 Si2 Sik A Sik的A输出边所指向的状态设为S*,即GO( Sik ,A)= S*则格局变为: # X1 X2 … Xk Si0 Si1 Si2 Sik A S*

LR分析模型 LR(0)分析器的结构 Input a1 … ai … an # LR分析驱动器 Output St Xt … action goto 状态栈 符号栈  分析栈 分析表 LR分析模型

LR(0)分析表 LR分析表是提取活前缀状态机LRSM中的信息形成的矩阵形式的表。包括Action表和GoTo表两部分: Action矩阵:行代表状态,列代表输入符,而矩阵元素则表示相应的分析动作:移入Shift / 归约Reduce / 成功Accept / 失败Error GoTo矩阵:行代表状态,列则代表非终极符,而矩阵元素则表示归约后的转向状态。

a 1 A d 3 5 B b c 6 2 4 Action 例:构造G[S]的基于LR(0) 方法的Action矩阵。 a b c d # S → aAd[1] A → Bc[2] B → b[3] a b c d # S1 1 S2 2 R3 3 S5 4 S6 5 Acc 6 R2 S → aAd[1] a S → aAd[1] A → Bc[2] B → b[3] 1 A d S → aAd [1] 3 S →a A d[1] 5 B b c A → Bc[2] 6 2 B → b[3] A → Bc[2] 4

GoTo表 例:构造G[S]的基于LR(0) 方法的GoTo矩阵。 G[S]: S → aAd[1] A → Bc[ 2] B → b[3] S A B 1 3 4 2 5 6 S → aAd [1] a S → aAd [1] A → Bc[2] B → b[3] 1 A S → aAd [1] 3 d S →a A d[1] 5 B b c A → Bc[2] 4 A → Bc[2] 6 2 B → b[3]

a b c d # S1 1 S2 2 R3 3 S5 4 S6 5 6 R2 S A B 3 4 例:构造G[S]的分析表。 S → aAd[1] A → Bc[ 2] B → b[3] Action表 GoTo表 a b c d # S1 1 S2 2 R3 3 S5 4 S6 5 Acc 6 R2 S A B 3 4

LR(0)驱动程序 首先置状态栈、符号栈和输入流的开始格局为: (S1, #, a1a2…an#) 则: 1移入:若当前格局为: (S1S2…Sn, #X1X2…Xn, aiai+1…an#), 且action(Sn, ai)=Sj,aiVT,则ai入符号栈,第j个状态Sj入状态栈。即移入后的格局变为: (S1S2…Sn Sj, #X1X2…Xnai, ai+1…an#)

LR(0)驱动程序(续1) 2归约:若当前格局为: (S1S2…Sn, #X1X2…Xn, aiai+1…an#) 且action(Sn, ai)=Rj,aVT{#},则按照第j个产生式进行归约,符号栈和状态栈相应元素退栈,归约后的文法符号和S入栈。假设第j个产生式为A,k=|| (=Xn-k+1…Xn),则归约后的格局变为: (S1S2…Sn-kS, #X1X2…Xn-kA, aiai+1…an#) 其中S=GoTo(Sn-k, A)。

LR(0)驱动程序(续2) 3.若状态栈的栈顶状态为Si,输入流当前值为#,且action(Si, #)=Accept,则分析成功。 4.若状态栈的栈顶状态为Si,输入流当前值为a,且action(Si, a)=Error或空,则转向出错处理程序。

LR(0)文法 形如A→•的项目称为归约型项目 形如A→•的项目称为移入型项目 若LRSM0中存在一个状态(项目集)既包含移入型项目又包含归约型项目,则说有移入-归约冲突;如果同时存在两个或两个以上归约型项目,则说有归约-归约冲突。 若LRSM0中任何状态都不存在冲突,则称该文法为LR(0)文法。

练习:构造LR(0)状态机 S  E $[1] E  E + T[2] E  T[3] T  id[4] T ( E ) [5]

T T 6 9 ( ( 5 id id E id ( E + 1 3 7 + $ ) T 2 4 8 T→( E) E→ E+T S  E $ E  E + T E  T T  id T ( E ) T T 6 T→( E) E→ E+T E→ T T→ id T→ ( E ) S→ E $ E→ E+T E→ T T→ id T→ ( E ) 9 E→T  ( ( 5 T→id  id id E id ( E + 1 S→E $ E→E +T 3 E→E+  T T→ id T→ (E) 7 T→(E ) E→E +T + $ ) T 2 S→E $ 4 E→E+T  8 T→(E) 

1 5 3 4 9 6 7 8 T ( id E ) + 2 $ S→ E $ E→ E+T E→ T T→ id S→ E $ E→ E+T E→ T T→ id T→ ( E ) 1 S→E $ E→E +T 5 T→id  3 E→E+  T T→ (E) 4 E→E+T  9 E→T  6 T→( E) 7 T→(E ) 8 T→(E)  T ( id E ) + 2 S→E $ $

$ + id ( ) # E T S5 S6 1 9 S2 S3 2 Acc 3 4 R2 5 R4 6 7 S8 8 R5 R3 Action表 GoTo表 S  E $[1] E  E + T[2]| T[3] T  id[4]| ( E )[5] $ + id ( ) # E T S5 S6 1 9 S2 S3 2 Acc 3 4 R2 5 R4 6 7 S8 8 R5 R3

LR(0)分析实例 状态栈 符号栈 输入串 Action Goto 0 # i+i$# 05 # i +i$# 09 # T +i$# G[S]: S  E $[1] E  E + T[2]| T[3] T  id[4]| ( E )[5] LR(0)分析实例 分析: i+i$ 状态栈 符号栈 输入串 Action Goto 0 # i+i$# 05 # i +i$# 09 # T +i$# 01 # E +i$# 013 # E+ i$# 0135 # E+i $# 0134 # E+T $# 01 # E $# 012 # E$ # A[0,i]=S5 reduce4 G[0,T]= 9 reduce3 G[0,E]= 1 A[1,+]=S3 A[3,i]=S5 reduce4 G[3,T]= 4 reduce2 G[0,E]= 1 A[1, $]=S2 accept