版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,编译原理,第六章 属性文法和语法制导翻译,2,第六章 属性文法和语法制导翻译,属性文法 基于属性文法的处理方法 S-属性文法的自下而上计算 L-属性文法和自顶向下翻译,3,第六章 属性文法和语法制导翻译,属性文法 基于属性文法的处理方法 S-属性文法的自下而上计算 L-属性文法和自顶向下翻译,4,6.2 基于属性文法的的处理方法,依赖图 树遍历 一遍扫描,5,一遍扫描的处理方法,一遍扫描的处理方法是在语法分析的同时计算属性值 所采用的语法分析方法 属性的计算次序 L属性文法适合于一遍扫描的自上而下分析 S属性文法适合于一遍扫描的自下而上分析,6,语法制导翻译法,所谓语法制导翻译法,直观上说
2、就是为文法中每个产生式配上一组语义规则,并且在语法分析的同时执行这些语义规则 语义规则被计算的时机 在自上而下语法分析中,一个产生式匹配输入串成功时 在自下而上分析中,当一个产生式被用于进行归约时,7,抽象语法树,在语法树中去掉那些对翻译不必要的信息,从而获得更有效的源程序中间表示。这种经变换后的语法树称之为抽象语法树(Abstract Syntax Tree),Sif B then S1 else S2,3*5+4,8,建立表达式的抽象语法树,mknode (op,left,right) 建立一个运算符号结点,标号是op,两个域left和right分别指向左子树和右子树 mkleaf (id
3、,entry) 建立一个标识符结点,标号为id,一个域entry指向标识符在符号表中的入口 mkleaf (num,val) 建立一个数结点,标号为num,一个域val用于存放数的值,9,建立抽象语法树的语义规则,产 生 式 语 义 规 则 EE1+TE.nptr := mknode( +, E1.nptr, T.nptr ) EE1-TE.nptr := mknode( -, E1.nptr, T.nptr ) ETE.nptr := T.nptr T (E)T.nptr := E.nptr TidT.nptr := mkleaf ( id, id.entry ) Tnum T.nptr :
4、= mkleaf ( num, num.val ),10,a4c的抽象语法树,E,-,T,id,T,num,+,EE1+T E.nptr := mknode( +, E1.nptr, T.nptr ) EE1-T E.nptr := mknode( -, E1.nptr, T.nptr ) ET E.nptr := T.nptr Tid T.nptr := mkleaf ( id, id.entry ) Tnum T.nptr := mkleaf ( num, num.val ),11,第六章 属性文法和语法制导翻译,属性文法 基于属性文法的处理方法 S-属性文法的自下而上计算 L-属性文法和
5、自顶向下翻译,12,6.3 S-属性文法的自下而上计算,S-属性文法:只含有综合属性 综合属性可以在分析输入符号串的同时由自下而上的分析器来计算 分析器可以保存与栈中文法符号有关的综合属性值,每当进行归约时,新的属性值就由栈中正在归约的产生式右边符号的属性值来计算,13,S-属性文法的计算,在分析栈中使用一个附加的域来存放综合属性值 假设语义规则A.a:=f(X.x,Y.y,Z.z)是对应于产生式AXYZ的,14,产生式 代 码 段 LEnprint(valtop) EE1+Tvalntop := valtop-2+valtop ET TT1*Fvalntop := valtop-2*valt
6、op TF F (E)valntop :=valtop-1 Fdigit,产 生 式 语 义 规 则 LEn print(E.val) EE1+T E.val := E1.val+T.val ET E.val :=T.val TT1*F T.val :=T1.val* F.val TF T.val :=F.val F (E) F.val :=E.val Fdigit F.val :=digit.lexval,讨论:E、T和F为什么没有代码段 ?,15,statesym val 输入用到的产生式 0 # - 3*5+4n 05#3 -3 *5+4n 03 #F -3 *5+4n Fdigit 0
7、2 #T -3 *5+4n TF 027#T* -3 - 5+4n 0275 #T*5 -3 - 5 +4n,产生式 代 码 段 LEnprint(valtop) EE1+Tvalntop := valtop-2+valtop ET TT1*Fvalntop := valtop-2*valtop TF F (E)valntop :=valtop-1 Fdigit,16,statesym val 输入用到的产生式 0275 #T*5 -3 5+4n 02710#T*F -3 - 5 +4n Fdigit 02 #T -15 +4n TT*F 01 #E -15 +4n ET 016 #E+ -1
8、5- 4n 0165 #E+4 -15- 4 n,产生式 代 码 段 LEnprint(valtop) EE1+Tvalntop := valtop-2+valtop ET TT1*Fvalntop := valtop-2*valtop TF F (E)valntop :=valtop-1 Fdigit,17,statesym val 输入用到的产生式 0165 #E+4 -15- 4 n 0163 #E+F -15- 4 n Fdigit 0169 #E+T -15- 4 n TF 01#E -19 n EE+T #En -19- #L -19 LEn,产生式 代 码 段 LEnprint(valtop) EE1+Tvalntop
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年城市公园绿化空气质量监测合同协议
- 泉州轻工职业学院《人际传播与沟通》2025-2026学年期末试卷
- 长春职业技术大学《中国画论史》2025-2026学年期末试卷
- 长春人文学院《大学英语精读》2025-2026学年期末试卷
- 福州外语外贸学院《口腔诊断学》2025-2026学年期末试卷
- 人工智能时代的蛰伏
- 情绪周期与学习效率的关联应用(教师篇)
- 2026年人教版小学一年级语文下册看图补充句子练习卷含答案
- 【 物理 】磁的奥秘课件2025-2026学年物理沪科版九年级全一册
- 深度解析(2026)《GBT 4127.12-2008固结磨具 尺寸 第12部分:直向砂轮机用去毛刺和荒磨砂轮》
- 黑龙江省园林绿化工程消耗量定额2024版
- 人工智能助力智慧护理的发展
- 公路工程标准施工招标文件第八章-工程量清单计量规则(2018年版)
- 危险化学品安全有关法律法规解读
- 2025年初中语文名著阅读《林海雪原》知识点总结及练习
- 做饭合同范本
- 公共数据授权运营的垄断隐忧与对策
- 《森林资源资产评估》课件-森林资源与森林资源资产
- 癫痫患儿的心理护理
- EN-ISO-5817-焊缝检验及评定缺欠-质量分级指南
- SY-T 5412-2023 下套管作业规程
评论
0/150
提交评论