! 温故知新 上下文无关文法 最左推导 最右推导 自上而下 自下而上 句柄 归约 移进-归约冲突 移进-归约分析 递归下降预测分析

Slides:



Advertisements
Similar presentations
Unit 4 Finding your way Integrated skills New words and phrases: past prep. 在另一边,到另一侧 treasure n. 宝藏 turning n. 转弯处 traffic n. 交通,来往车辆 traffic lights.
Advertisements

高考英语阅读分析 —— 七选五. 题型解读: 试题模式: 给出一篇缺少 5 个句子的文章, 对应有七个选项,要求同学们根据文章结构、 内容,选出正确的句子,填入相应的空白处。 考查重点: 主要考查考生对文章的整体内容 和结构以及上下文逻辑意义的理解和掌握。 (考试说明) 选项特点: 主旨概括句(文章整体内容)
四、后期物理复习备考建议 不同阶段复习课教学设计(知识建构)的目的 复习课教学 设计的目的 理 解 · 对某知识的全面、抽 象理解 · 抽象知识和具体情景 的转化 综 合 · 多知识点联合解决问 题 基本素质 · 审题、表达、审视答 案等基本能力 复习 ( 一 ) 复习(二) ☆ ☆☆☆ ☆☆  进行科学规划.
第一部分 考试总体分析 第二部分 命题思路与答题方法 技巧分析
必修2 第一单元 古代中国经济的基本结构和特点
報告人:教育部會計處處長 黃 永 傳 日 期:103 年12 月27 日
电路和电流 考点知识梳理 中考典例精析 课堂达标训练 专题训练.
氧气的制法 装置 原理 练习 随堂检测.
有效的讀書方法 蔡彥欣 博士 鄭建立 整理.
专题八 书面表达.
第一節 美滿婚姻關係的特質 第二節 婚姻與性 第三節 婚姻中常見的問題
  評量研習 國立臺南大學應用數學系     謝  堅.
习题与试题 认真复习,重点是掌握基本概念。基本概念掌握了,相当一部分试题的解就有了
完形填空技巧 CET4.
广德二中2006届高考 英语专题复习 单项填空 答题指导.
二综防火设计分析.
第三单元 发展社会主义民主政治.
第2章 LR分 析 法 LR分析法是一种自下而上进行规范归约的语法分析方法,LR指“自左向右扫描和自下而上进行归约”。LR分析法比递归下降分析法、LL(1)分析法和算符优先分析法对文法的限制要少得多,对大多数用无二义的上下文无关文法描述的语言都可以用LR分析器予以识别,而且速度快,并能准确、及时地指出输入串的任何语法错误及出错位置。LR分析法的一个主要缺点是,若用手工构造分析器则工作量相当大,因此必须求助于自动产生LR分析器的产生器。
3.3 资源的跨区域调配 ——以南水北调为例 铜山中学 李启强.
第五章 电流和电路 制作人 魏海军
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
勾股定理 说课人:钱丹.
实践 课题 周围环境对当代大学生成长的影响 指导老师:王永章 小组成员:陈荣、刘若楠、张红艳、吕雪丹、樊金芳、李惠芬、黄婧
编译原理与技术 课程总结.
A Lesson In a Lab Introduction Vocabulary and Speaking.
CH1 Number Systems and Conversion
Part5语法分析 授课:胡静.
编译原理复习.
2.2 语法分析器生成器YACC 分析器的构造步骤: 产生式→识别活前缀的DFA→分析表(+驱动器) YACC概述
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
Calling about an apartment for rent II Objectives
自上而下分析 4.4.
Properties of Continuous probability distributions
语言及其文法.
Dì二十課 看bìng Dì二十课 看bìng
离散数学─逻辑和证明 南京大学计算机科学与技术系
Part5语法分析 授课:胡静.
本章大綱 2.1 The Limit of a Function函數的極限 2.2 Limit Laws極限的性質
Interval Estimation區間估計
子博弈完美Nash均衡 我们知道,一个博弈可以有多于一个的Nash均衡。在某些情况下,我们可以按照“子博弈完美”的要求,把不符合这个要求的均衡去掉。 扩展型博弈G的一部分g叫做一个子博弈,如果g包含某个节点和它所有的后继点,并且一个G的信息集或者和g不相交,或者整个含于g。 一个Nash均衡称为子博弈完美的,如果它在每.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
第五章 语法分析——自下而上分析 自上而下分析法(Top-down) 自下而上分析法(Bottom-up) 国防科技大学计算机系602教研室.
编译原理 第四章 语法分析—自上而下分析 编译原理.
语法分析 本章内容 语法分析器:把词法分析生成的词法单元流翻译成语法分析树(parse tree)
4.8 平行线 海南华侨中学 王应寿.
句子成分的省略(1).
成品检查报告 Inspection Report
二、雅思学术类阅读题型 10种题型 5种大题型+5种小题型.
第五章 自底向上分析方法 LR(0)分析法 1 LR(K)分析法 第一个L表示:相应的语法分析将按自左至右的顺序扫描输入符号串;
每周三交作业,作业成绩占总成绩的15%; 平时不定期的进行小测验,占总成绩的 15%;
3.5 Region Filling Region Filling is a process of “coloring in” a definite image area or region. 2019/4/19.
突出语篇语境,夯实词汇语法 一模试卷单选完形分析 及相应的二轮复习对策 永嘉罗浮中学 周晓媚.
Unit 7 Lesson 20 九中分校 刘秀芬.
為什麼要考教育會考 學生:了解自己的學習品質,並為下一學習階段作準備。
软件测试技术-白盒测试 张志强 2006.
第五章 自底向上分析方法 LR(0)分析法 1 LR(K)分析法 第一个L表示:相应的语法分析将按自左至右的顺序扫描输入符号串;
95年度高屏醫療網 以病人為中心之醫療照護— 以弱勢族群為重點 期末報告
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
名词从句(2).
為什麼要考教育會考 學生:了解自己的學習品質,並為下一學習階段作準備。
SLR(1)分析方法.
103年國中教育會考簡介 國中教育會考是十二年國民基本教育實施計畫中「落實國中教學正常化、適性輔導及品質提升方案」的重要配套措施之一。
第四章 语法分析 南京大学计算机系 戴新宇
计算机问题求解 – 论题 串匹配 2017年5月3日.
编译原理 第一章 编译程序概述 第二章 PL/0编译程序的实现 第三章 文法和语言 第四章 词法分析 第五章 自顶向下语法分析方法
Sun-Star第六届全国青少年英语口语大赛 全国总决赛 2015年2月 北京
Principle and application of optical information technology
第八章 繪圖技巧.
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
Presentation transcript:

! 温故知新 上下文无关文法 最左推导 最右推导 自上而下 自下而上 句柄 归约 移进-归约冲突 移进-归约分析 递归下降预测分析 1。句柄与某个产生式的右部符号串相同 2。句柄是句型的一个子串 3。把句柄归约成非终结符代表了最右推导逆过程的一步 上下文无关文法 ! 最左推导 最右推导 自上而下 自下而上 句柄 归约 移进-归约冲突 移进-归约分析 递归下降预测分析 归约-归约冲突 LL(1)文法 输入 LR分析程序 输出 栈 LR分析器的模型 action goto sm Xm sm-1 Xm-1 … s0 a1 ai an $ 非递归的预测分析 LR文法 2个函数 活前缀 右句型的前缀,该前缀不超过最右句柄的右端 简单的LR方法(SLR) 规范的LR方法 向前看的LR方法(LALR) 1/41

given point in the parsing process. 3.5 LR Parser 3.5.3 Constructing SLR Parse Table LR(0) item (item for short) a production of G with a dot at some position of the body Ex:AXYZ has four items A  ·XYZ A  X·YZ A  XY·Z A  XYZ· Ex:A has only one item A  · Intuitively , an item indicates ho w much of a production we have seen at a given point in the parsing process.

S  aABe A  Abc | b B  d $ a b b c d e $ S0 S  ·aABe

S  aABe A  Abc | b B  d A  · Abc S  a · ABe A  · b S  a · ABe Two possibilities b b c d e $ $ a S0 S1 A  · Abc S  a · ABe A  · b 通过实例来说明加点项含义 S  a · ABe A  · Abc A  · b action(1,b)=S2

S  aABe A  Abc | b B  d S1 S  a · ABe A  · Abc A  · b S2 $ a b b c d e $ S0 S1 S2 S2 achieved by shifting b from S1 S1 S  a · ABe A  · Abc A  · b A  · b becomes A  b · S2 A  b · Next, reduce

S  aABe A  Abc | b B  d S  a A · Be S1 S  a · ABe A  A ·bc $ a A b c d e $ S0 S1 S3 Check: from S1, after seeing A, where to go? S  a A · Be Two possibilities S1 S  a · ABe A  · Abc A  · b A  A ·bc S3 S  a A · Be A  A ·bc B  ·d

S  aABe A  Abc | b B  d S3 S4 S  a A · Be A  A b · c A  A ·bc $ a A b c d e $ S0 S1 S3 S4 After shifting b becomes S3 S  a A · Be A  A ·bc B  ·d S4 A  A b · c

S  aABe A  Abc | b B  d S4 A  A b · c S5 A  A b c · becomes $ a A b c d e $ S0 S1 S3 S4 S5 becomes S4 A  A b · c Next, reduce S5 A  A b c ·

S  aABe A  Abc | b B  d S3 S  a A · Be A  A ·bc B  ·d becomes $ a A d e $ S0 S1 S3 becomes Next? S3 S  a A · Be A  A ·bc B  ·d

S  aABe A  Abc | b B  d S2 S  a A · Be A  A · bc B  · d S6 $ a A d e $ S0 S1 S3 S6 S2 S  a A · Be A  A · bc B  · d becomes S6 B  d · Next, reduce

S  aABe A  Abc | b B  d S3 S  a A · Be A  A · bc B  · d S7 $ a A B e $ S0 S1 S3 S7 S3 S  a A · Be A  A · bc B  · d becomes S7 S  a AB · e

S  aABe A  Abc | b B  d S7 S  a AB · e Next, reduce S8 $ a A B e $ S0 S1 S3 S7 S7 S  a AB · e becomes Next, reduce S8 S  a AB e ·

S  aABe A  Abc | b B  d $ S $ S0 OK Accept

3.5 LR Parser Two steps of constructing SLR Parse table 1. Construct a DFA to recognize the viable prefixes 2. Construct the parse table with respect to the DFA

3.5 LR Parser Constructing the DFA 1. Augmented Grammar E   E acceptance occurs when and only when the parser is about to reduce b y E   E Constructing the DFA 1. Augmented Grammar E   E E  E + T | T T T * F | F F ( E ) | id id + id F + id T+id E+id E+F E+T E E rmE+T rm E+F rm E+id rm T+id rm F+id rm id+id

3.5 LR Parser Constructing the DFA E   E E  E + T | T T T * F | F F ( E ) | id Constructing the DFA 2. Construct the canonical LR(0) collection I0: E  ·E closure(I) 1、 add every item in I to closure(I) 2、If Aα·Bβ is in closure(I), and Bγ is a production, then add B ·γ to closure(I) if it’s not there E  ·E + T E  ·T T  ·T * F T  ·F F  ·(E) F  ·id 5/41

and those items in which dot not at the left end 3.5 LR Parser E   E E  E + T | T T T * F | F F ( E ) | id Constructing the DFA 2. Construct the canonical LR(0) collection I0: E  ·E (Kernel items) E  ·E + T E  ·T (Nonkernel items, T  ·T * F could be obtained by T  ·F computing the closure F  ·(E) function of kernel items) F  ·id E’·E and those items in which dot not at the left end

3.5 LR Parser Constructing the DFA E   E E  E + T | T T T * F | F F ( E ) | id Constructing the DFA 2. Construct the canonical LR(0) collection I0: I1: E  ·E E   E· E  ·E + T E  E· + T E  ·T T  ·T * F T  ·F F  ·(E) F  ·id

3.5 LR Parser Constructing the DFA E   E E  E + T | T T T * F | F F ( E ) | id Constructing the DFA 2. Construct the canonical LR(0) collection I0: I1: E  ·E E   E· E  ·E + T E  E· + T E  ·T T  ·T * F I1 := goto ( I0, E ) T  ·F F  ·(E) F  ·id

3.5 LR Parser Constructing the DFA E   E E  E + T | T T T * F | F F ( E ) | id Constructing the DFA 2. Construct the canonical LR(0) collection I0: I1: E  ·E E   E· E  ·E + T E  E· + T E  ·T T  ·T * F I2: T  ·F E  T· F  ·(E) T T· * F F  ·id

3.5 LR Parser Constructing the DFA E   E E  E + T | T T T * F | F F ( E ) | id Constructing the DFA 2. Construct the canonical LR(0) collection I0: I1: E  ·E E   E· E  ·E + T E  E· + T E  ·T T  ·T * F I2: T  ·F E  T· F  ·(E) T T· * F F  ·id I3: T  F· 10/41

3.5 LR Parser I0: I4: E  ·E F  (·E ) E  ·E + T E  ·E + T E  E + T | T T T * F | F F ( E ) | id I0: I4: E  ·E F  (·E ) E  ·E + T E  ·E + T E  ·T E  ·T T  ·T * F T  ·T * F T  ·F T  ·F F  ·(E) F  ·(E) F  ·id F  ·id

3.5 LR Parser I0: I4: E  ·E F  (·E ) E  ·E + T E  ·E + T E  E + T | T T T * F | F F ( E ) | id I0: I4: E  ·E F  (·E ) E  ·E + T E  ·E + T E  ·T E  ·T T  ·T * F T  ·T * F T  ·F T  ·F F  ·(E) F  ·(E) F  ·id F  ·id I5: F  id·

3.5 LR Parser I1 I0 E I3 I2 I4 I5 T F ( id

3.5 LR Parser I1: E   E· E  E·+ T E E   E I0 I1 E  E + T | T F ( id E   E E  E + T | T T T * F | F F ( E ) | id I1: E   E· E  E·+ T

3.5 LR Parser I1: E   E· E  E·+ T I6 : EE + ·T T ·T * F T ·F ( id E   E E  E + T | T T T * F | F F ( E ) | id I1: E   E· E  E·+ T I6 : EE + ·T T ·T * F T ·F F ·(E) F ·id 15/41

3.5 LR Parser I2: E T· TT·*F I7: TT *·F F ·(E) F ·id E E   E I0 E  E + T | T T T * F | F F ( E ) | id I2: E T· TT·*F I7: TT *·F F ·(E) F ·id

3.5 LR Parser I3: T  F· E E   E I0 I1 E  E + T | T T T * F | F ( id E   E E  E + T | T T T * F | F F ( E ) | id I3: T  F·

3.5 LR Parser I4: F  (·E ) E  ·E + T E  ·T T  ·T *F T  ·F id E   E E  E + T | T T T * F | F F ( E ) | id I4: F  (·E ) E  ·E + T E  ·T T  ·T *F T  ·F F  ·( E ) F  ·id

3.5 LR Parser I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T id I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T T  ·T *F T  ·F F  ·( E ) F  ·id E   E E  E + T | T T T * F | F F ( E ) | id

3.5 LR Parser I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T id I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T T  ·T *F I2: T  ·F E T· F  ·( E ) TT·*F F  ·id E   E E  E + T | T T T * F | F F ( E ) | id 20/41

3.5 LR Parser I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T id I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T T  ·T *F I2: T  ·F E T· F  ·( E ) TT·*F F  ·id I3: TF· E   E E  E + T | T T T * F | F F ( E ) | id

3.5 LR Parser I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T id I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T T  ·T *F I2: T  ·F E T· F  ·( E ) TT·*F F  ·id I3: TF· I4: F (·E ) . . . E   E E  E + T | T T T * F | F F ( E ) | id

3.5 LR Parser I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T E  E + T | T T T * F | F F ( E ) | id I1 I0 E I3 I2 I4 I5 T F ( id I4: I8: F  (·E ) F (E·) E  ·E + T E  E·+ T E  ·T T  ·T *F I2: T  ·F E T· F  ·( E ) TT·*F F  ·id I3: TF· I4: I5: F (·E ) F id· . . .

3.5 LR Parser I5: F id· E E   E I0 I1 E  E + T | T T T * F | F ( id E   E E  E + T | T T T * F | F F ( E ) | id I5: F id·

3.5 LR Parser E + E   E E  E + T | T T T * F | F F ( E ) | id I0 25/47 I5

3.5 LR Parser I1 I0 + To I7 E I6 I9 I3 I2 I4 I11 I8 I7 * T I5 To I4 F ( id )

3.5 LR Parser Properties of the constructed DFA Definition:valid item If S*rm Aw rm 12w,we say item A1·2 is valid for a viable prefix 1 In general, an item will b e v alid for man y viable prefixes S*rm AAw rm A12w rm  1212w For any viable prefix 1, suppose A1·2is valid If 2 , should shift If 2 = , should reduce by A1

3.5 LR Parser Properties of the constructed DFA Definition:valid item If S*rm Aw rm 12w,we say item A1·2 is valid for a viable prefix 1 In general, an item will b e v alid for man y viable prefixes A viable prefix may have multiple valid items The valid items of a viable prefix  is the item set (state) reached by the path 

3.5 LR Parser Ex E + T * is a viable prefix. After reading it, DFA reaches I7 I7: TT *·F, F ·(E ), F ·id E   E E   E E   E  E+T  E+T  E+T  E+T * F  E+T * F  E+T * F  E+T * id  E+T * (E )  E+T* id  E+T * F * id Definition:Valid item If S*rm Aw rm 12w,we say item A1·2 is valid for viable prefix 1

3.5 LR Parser Two steps of constructing SLR Parse table 1. Construct a DFA to recognize the viable prefixes 2. Construct the parse table with respect to the DFA 30/41

3.5 LR Parser Construct SLR Parse table from DFA For state i from Ii,its action function defined as: If [A·a] in Ii,and goto(Ii, a ) = Ij,then action[i, a] is sj。 If [A·] in Ii,then for all a in FOLLOW(A) ,place action[i, a] with rj, where j is the id of A If [SS·] in Ii,action[ i, $ ] is acc。 If conflict occurs, the grammar is not SLR(1)

3.5 LR Parser Construct SLR Parse table State I constructed from Ii, its action function defined as follows . . . Construct goto function as follows: For all nonterminalA, ifgoto(Ii, A) = Ij, then goto[i, A] = j。

3.5 LR Parser Construct SLR Parse table State I constructed from Ii, its action function defined as follows . . . Construct goto function as follows: Set other entries as error

3.5 LR Parser Construct SLR Parse table State I constructed from Ii, its action function defined as follows . . . Construct goto function as follows: Set other entries as error The state that contains [S·S] is the initial state

3.5 LR Parser 例 I2: E  T· T  T· * F 因为FOLLOW(E) = {$, +, )}, 所以 E   E E  E + T | T T T * F | F F ( E ) | id 例 I2: E  T· T  T· * F 因为FOLLOW(E) = {$, +, )}, 所以 action[2, $]=action[2, +]=action[2, )]=r2 action[2, *] = s7 35/41

3.5 LR Parser S  V = E S  E V  * E V  id E  V I0 : S   · S Ex Limitation of SLR(1) S  V = E S  E V  * E V  id E  V I0 : S   · S S  ·V = E S  · E V  · * E V  · id E  · V I2 : S  V · = E E  V · V

3.5 LR Parser Ex Limitation of SLR(1) S  V = E S  E V  * E V  id S   · S S  ·V = E S  · E V  · * E V  · id E  · V I2 : S  V · = E E  V · V I2 the first item: action[2, = ] = s6

3.5 LR Parser Ex Limitation of SLR(1) S  V = E S  E V  * E V  id S   · S S  ·V = E S  · E V  · * E V  · id E  · V I2 : S  V · = E E  V · V I2 the first item: action[2, = ] = s6 I2 the second item: action[2, = ] = r5 Reduce by EV In that = belongs to FOLLW(E)

3.5 LR Parser Ex Limitation of SLR(1) S  V = E S  E V  * E V  id S   · S S  ·V = E S  · E V  · * E V  · id E  · V I2 : S  V · = E E  V · V I2 the first item: action[2, = ] = s6 I2 the second item: action[2, = ] = r5 Reduce by EV In that = belongs to FOLLW(E)

3.5 LR Parser Ex Limitation of SLR(1) S  V = E S  E V  * E V  id S   · S S  ·V = E S  · E V  · * E V  · id E  · V I2 : S  V · = E E  V · V I2 the first item: action[2, = ] = s6 I2 the second item: action[2, = ] = r5 Reduce by EV In that = belongs to FOLLW(E) However, right sentential form never starts with E=… 40/41

习 题 3.19(a), 3.20(a), 3.23 41/41

课堂练习 例 构造以下文法的SLR(1)分析表 S  V = E S  E V  * E V  id E  V

课堂练习 1. 构造识别活前缀的DFA (1) 拓广文法 S’ S S  V = E S  E V  * E V  id

课堂练习 1. 构造识别活前缀的DFA (2) 构造项目集规范族 I6: S V=.E E .V V  .*E I4: V * .E V  .id 1. 构造识别活前缀的DFA (2) 构造项目集规范族 I4: V * .E E .V V .*E V .id I1: S’ S . I0: S’ . S S  .V = E S  . E V  .* E V  .id E  .V I2: S V .=E E V. I7: V * E. I5: V id. I3: S E . I8: E V. I9: S V=E.

课堂练习 2. 从DFA构造分析表