《程序设计语言与编译》课程PPT教学课件(高职)第十三讲 自顶向下语法分析

第二节自顶向下语法分析 语法分柝:自上而下(自顶而下) 自下而上自底而上) 自顶向下语法分析法或从开始符号出发, 找最左推导;或从根开始构造推导树
第二节 自顶向下语法分析 语法分析: 自上而下(自顶而下) 自下而上(自底而上) 自顶向下语法分析法:或从开始符号出发, 找最左推导;或从根开始,构造推导树

回溯分析法 1一个实例 S→xA A→aba 输入串为xa说明分析过程
一. 回溯分析法 1.一个实例 S→xAy A→ab│a 输入串为xay,说明分析过程

A y xA A
S x A y S x A y a b S x A y a

2存在的问题 (1)回溯公共左因子的存在 A→→QB1O阝2 (2)左递归 A→Aa或A→Aa
2.存在的问题 (1)回溯——公共左因子的存在 A→1 | 2 (2)左递归 A→Aα 或 AAα +

二.无回溯的递归下降分析法 1.提取公共左因子 A→→∞B1B2….|oBn8 改写为:A_→αB6 B→β1β2….Bn
二. 无回溯的递归下降分析法 1. 提取公共左因子 A→1 | 2 | ... |n | δ 改写为:A→αB|δ B→ 1 | 2 | ... |n

2左递归的消除 (1)直接左递归的消除 Paβ 改写为P→βP P 8 般地A→Ax12.AamB1324.Bn (≠E,β不以A开头) 改写为P→B1P|β2P P→1P|axP1||anP|e
2.左递归的消除 (1)直接左递归的消除 P→Pα│β 改写为:P→P' P' →αP'│ε 一般地 A→A1 |A2 |…|Am|1 |2 |…|n (iε,j不以A开头) 改写为:P→1P’│ 2P’│. . .│ nP’ P’→1P’│2P’│. . .│mP’│ε

(2间接左递归的消除 P→Pa (a)将文法G的所有非终结符按任一给定的顺序排列设为 ala2. An
(2)间接左递归的消除 PPα (a)将文法G的所有非终结符按任一给定的顺序排列,设为 A1,A2,…An; +

(b)消除可能的左递归 for i =1 to n do begin for j: =1 to i-1 do 把一个形如A→>Aq的产生式改写为 A1→>81Q62(|62a 其中A>61621…16是A的所有产生式 消除A产生式的直接左递归 ene (c)化简
(b)消除可能的左递归; for i:=1 to n do begin for j:=1 to i-1 do 把一个形如Ai→Aj的产生式改写为 Ai→1|2|…|k 其中Aj→1 |2 |…|k是Aj的所有产生式; 消除Ai产生式的直接左递归 end (c)化简

以S→Ql|c Q→Rb|b R→Saa 为例按S,QR排列,或RQS排列
以 S→Qc│c Q→Rb│b R→Sa│a 为例,按S,Q,R排列,或R,Q,S排列

按S、Q、R排列,代入后 SQc c Q→Rb|b R→ Rbca bca ca a 消除R中的直接左递归 R→ bcar|caR'laR R→baR|e 文法产生的语言( bcalcala)(bca)* ccbcc
按S、Q、R排列, 代入后 S→Qc│c Q→Rb│b R→ Rbca│bca│ca│a 消除R中的直接左递归 R→ bcaR’│caR’│aR’ R’→ bcaR’│ 文法产生的语言:(bca|ca|a)(bca)*bc|bc|c
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《程序设计语言与编译》课程PPT教学课件(高职)第十七讲 LR分析法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十六讲 优先关系表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十九讲 代码生成和代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十讲 程序设计语言和编译程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十二讲 编译概述.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十八讲 SLR分析表的构造.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第三讲 程序单元.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第七讲 抽象数据类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第六讲 类型检查.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第九讲 SIMULA 67协同程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十一讲 一类说明语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十五讲 循环优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十四讲 代码优化.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十三讲 控制语句也可采用改写文法的方法.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十七讲 栈式分配.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十六讲 运行时存储空间管理.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十讲 含数组元素的赋值语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二十二讲 一类控制语句的翻译.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第二讲 强制式语言.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第八讲 控制结构.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十四讲 预测分析程序.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十五讲 自底向上语法分析.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第十一讲 自动机.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第四讲 用户定义类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第五讲 组合类型.ppt
- 《程序设计语言与编译》课程PPT教学课件(高职)第一讲 绪论(主编:王晓斌).ppt
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末一.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_实践考试方案.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末二.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_期末三.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_网络工程方案设计.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_OSPF 路由协议配置.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_RIP 路由协议配置.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_网络工程方案书写.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_交换机访问.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_交换机虚划分.doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_校园网投标书实例(一).doc
- 宜宾职业技术学院:《实用组网技术》课程教学资源_校园网投标书实例(二).doc
- 《SQL基础—语句初步》第二章 SQL.ppt
- 深圳大学:《计算机应用基础》课程教学资源(PPT课件讲稿)第二章 计算机件系统.ppt