《编译原理》课程教学资源(PPT课件讲稿)语法制导的翻译(Syntax-Directed Translation)

语法制导的翻译 Syntax-Directed Translation
语法制导的翻译 (Syntax-Directed Translation)

语法制导的翻译:一种由语法分析 器驱动的翻译方法 How? 源程序一词法okem 语法分析语义分析、[间 分析器 tNextTokenl分析器「树7仲间代码生表示 符号表 用语法分析的过程和分析树引导语义分析和中间代码生成 两种方法:语法制导的定义、语法制导的翻译方案
词 法 分析器 token getNextToken 源程序 分析 树 语义分析、 中间代码生成 语 法 分析器 中间 表示 符号表 用语法分析的过程和分析树引导语义分析和中间代码生成 语法制导的翻译:一种由语法分析 器驱动的翻译方法 How? 两种方法:语法制导的定义、语法制导的翻译方案

语法制导的定义 ·例简单计算器的语法制导定义 产生式 语义规则 →)En L. val= e.val E→)E1+T E. val=El. val+ Tval E→T E.val= tval T→们*F Tval= tval s Eval T→F Tval= val F→(E) Eval= e val F→ digit Eval= digit lexval
语法制导的定义 • 例 简单计算器的语法制导定义 产 生 式 语 义 规 则 L → E n L.val = E.val E → E1 + T E.val = E1 .val + T.val E → T E.val = T.val T → T1 F T.val = T1 .val F.val T → F T.val = F.val F→ (E) F.val = E.val F → digit F.val = digit.lexval

语法制导的定义 ·基础文法 每个文法符号有一组属性 每个文法产生式A→有 组形式为b=f(c1,c,…,ck)的语义规则,其中 b和c1,C2,…c是该产生式文法符号的属性, f是函数 综合属性:b是A的属性,C1,C2,…,ck是产生式右 部文法符号的属性或A的其它属性 继承属性:b是右部某文法符号Ⅹ的属性,c1,C2,…, ck是产生式右部文法符号的属性或A的属性
语法制导的定义 • 基础文法 • 每个文法符号有一组属性 • 每个文法产生式A → 有 一组形式为b=f(c1 , c2 , …, ck )的语义规则,其中 b和c1 , c2 , …, ck 是该产生式文法符号的属性, f 是函数 • 综合属性:b是A的属性,c1 , c2 , …, ck 是产生式右 部文法符号的属性或A的其它属性 • 继承属性:b是右部某文法符号X的属性,c1 , c2 , …, ck 是产生式右部文法符号的属性或A的属性

s属性的语法制导定义 ·仅使用综合属性的语法制导定义 产生式 语义规则 L→En L. val= e.val E→E1+T E.val=e val t tval E→T E.val= tval T→T1*F Tval= t,val s Eval T→F Tval= eval F→(E) Eval= e.val F→ digit Eval= digit lexval
S属性的语法制导定义 • 仅使用综合属性的语法制导定义 产 生 式 语 义 规 则 L → E n L.val = E.val E → E1 + T E.val = E1 .val + T.val E → T E.val = T.val T → T1 F T.val = T1 .val F.val T → F T.val = F.val F→ (E) F.val = E.val F → digit F.val = digit.lexval

S属性的语法制导定义 ·注释分析树:结点的属性值都标注出来的分析树 8+5*2n的注释分析树 L .val= i 8 E.val= 18 E.val 8 Tval= 10 Tval= 8 Tval= 5 Fval= 2 f.val= 8 F val= 5 digit.lexval= 2 digit.lexval =8 digit.lexval= 5
S属性的语法制导定义 • 注释分析树:结点的属性值都标注出来的分析树 8+5*2 n 的注释分析树 digit.lexval = 2 L.val = 18 E.val = 18 n E.val = 8 T.val = 10 T.val = 8 F.val = 8 digit.lexval = 8 T.val = 5 + F.val = 5 F.val = 2 digit.lexval = 5

s属性的语法制导定义 ·分析树各结点属性的计算可以自下而上地完成 L .val= i 8 E.val= 18 E.val 8 Tval= 10 Tval= 8 Tval= 5 Fval= 2 f.val= 8 F val= 5 digit.lexval= 2 digit.lexval =8 digit.lexval= 5
S属性的语法制导定义 • 分析树各结点属性的计算可以自下而上地完成 digit.lexval = 2 L.val = 18 E.val = 18 n E.val = 8 T.val = 10 T.val = 8 F.val = 8 digit.lexval = 8 T.val = 5 + F.val = 5 F.val = 2 digit.lexval = 5

继承属性 int id 1 3 产生式 语义规则 D→ TL L in=T!ype T→int T type= integer T-> real T type=real L→L1, id Lr in=Li; addType(id entry, Lin L→>id addTypelid. entry, Lin)
继承属性 int id1 , id2 , id3 产 生 式 语 义 规 则 D → TL L.in = T.type T→ int T. type = integer T→ real T. type = real L→ L1 , id L1 .in = L.in; addType(id.entry, L.in) L→ id addType(id.entry, L.in)

继承属性 例 int id,id2,id3的标注了部分属性的分析树 不可能像综合属性那样自下而上标注属性 D Ttype= integer L in=integer int Lin= integer Lin= integer 2
继承属性 • 例 int id1 , id2 , id3的标注了部分属性的分析树 不可能像综合属性那样自下而上标注属性 D int T.type = integer , id3 L.in = integer L.in = integer L.in = integer id2 id1

属性依赖图 ·例 int id,id2,id3的分析树(虚线)的依赖图 (实线) D→TL.in=Type D t 4 type in 5 L6 int in7 l 8 id3 3 ent in id2 2 ent id1 1 entry
属性依赖图 • 例 int id1 , id2 , id3的分析树(虚线)的依赖图 (实线) D → TL L.in = T.type D int T , id3 L L L id2 id1 , 1 entry 10 2 entry 3 entry in 9 in 7 8 4 type in 5 6
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《Photoshop CS教程》教学资源(PPT课件)第7章 编辑文字.ppt
- 西南交通大学:《网络性能评估与测试 Network Performance Evaluation and Testing》(PPT课件讲稿)第2讲 网络测试技术基础(主讲:张新有).ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第五章 多维数组与广义表.ppt
- 上海交通大学:超立方体 Hypercube(PPT讲稿)Low-Diameter Architectures.ppt
- 东北大学:《计算机图形学》课程教学资源(PPT课件讲稿,主讲:闻时光).ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第四章 串.ppt
- 《现代操作系统 Modern Operating Systems》课程教学资源(PPT课件讲稿,Third Edition)Chapter 3 内存管理 Memory Management.ppt
- 《网络编程实用教程》课程教学资源(PPT课件讲稿)第2章 套接字网络编程基础.ppt
- 《软件工程》课程教学资源(PPT课件)Lecture 6 设计概念和原则 Design Concepts and Principles.ppt
- 西安交通大学:《微机原理与接口技术》课程教学资源(PPT课件讲稿)第6章 数字量输入输出接口(主讲:桂小林).ppt
- 香港中文大学:《Probability and Statistics for Engineers》课程教学资源(PPT课件讲稿)Chapter 09 Classical Staistical Inference.pptx
- 上海交通大学:《挖掘海量数据集 Mining Massive Datasets》课程教学资源(PPT讲稿)Lecture 07 链接分析 Link Analysis.ppt
- 《计算机仿真技术》课程电子教案(PPT教学课件)第一章 绪论.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第6章 IP路由.ppt
- 《计算机原理及应用》课程教学资源(PPT课件讲稿)第8章 单片机的存储器的扩展.ppt
- 《算法设计》课程教学资源(PPT课件讲稿)Lecture 6 Graph Traversal.ppt
- 香港浸会大学:《Data Communications and Networking》课程教学资源(PPT讲稿)Chapter 3 Data Transmission.ppt
- 南京大学:Decidability、Complexity(P、NP、NPC)、Reduce(P NP NPC).pptx
- 《计算机文化基础》课程教学资源(PPT课件讲稿)第四章 电子表格系统Excel 2003.ppt
- 西安电子科技大学:《信息系统安全》课程教学资源(PPT课件讲稿)第三章 信息安全保障体系、第四章 物理安全.ppt
- 电子科技大学:《密码理论》课程教学资源(PPT课件讲稿)第2章 流密码.ppt
- 搜索引擎技术(PPT讲稿)Web Spam.ppt
- 四川大学:《计算机操作系统 Operating System Principles》课程教学资源(PPT课件讲稿)第1章 导论(主讲:段磊).ppt
- 赣南师范大学:《计算机网络原理》课程教学资源(PPT课件讲稿)第七章 网络层.ppt
- 《人工智能》课程电子教案(PPT课件讲稿)第9章 机器学习与知识发现.ppt
- 《数字图像处理》课程教学资源(PPT课件讲稿)第7章 图像分割.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第五章 语法制导的翻译 5.1 语法制导的定义 5.2 S属性定义的自下而上计算.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 5 互斥与同步(Mutual Exclusion and Synchronization)5.3 Semaphores.ppt
- 淮阴工学院:《数据库原理》课程教学资源(PPT课件讲稿)第2章 数据库系统结构.ppt
- 苏州大学:文档评分与向量空间模型(PPT讲稿).ppt
- 清华大学:Computational Models for Social Network Analysis(PPT讲稿)mining big social networks(Part III:Group and Structure).pptx
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第一章 计算机网络安全概述2/2(主讲:肖明军).ppt
- 《计算机硬件基础》课程教学资源(PPT课件讲稿)第六章 汇编语言及其程序设计.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第四章 指令系统及汇编语言程序设计(4.9-4.11).ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 控制语句.ppt
- 《机器学习》课程教学资源(PPT课件讲稿)第十三章 半监督学习.pptx
- 《数字图像处理》课程教学资源(PPT课件)第三章 灰度直方图.ppt
- 《电子技术》课程教学资源(PPT讲稿资料)玩转Arduino合集.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第7章 广域网.ppt
- 电子科技大学:《信息安全概论》课程教学资源(PPT课件讲稿)第一章 概述(秦志光).ppt