- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 6 章 中间代码及其翻译 静态语义审查 6.1 常用的中间代码形式 语句标号为转向语句提供转入语句标识,二者用标号相关联。 ※ 中间代码设计示例: ※ 中间代码设计示例(续1): 6.3 语法制导翻译 ※ 属性文法构造示例 ※ 属性文法构造示例 (续1): ※ 属性文法构造示例 (续2): ※ 属性文法构造示例 (续3): ※ 算术表达式四元式属性翻译文法设计 ※ 算术表达式四元式属性翻译文法设计 ※ 算术表达式四元式属性翻译文法设计 ※ 属性翻译文法应用示例 ※ 属性翻译文法应用示例(续1) 6.4 语法制导翻译器的实现 6.4 语法制导翻译器的实现(续1) 6.4.2 LL(1)法四元式翻译器构造 6.4.2 LL(1)法四元式翻译器构造 ※ 算术表达式句柄识别器的构造 6.4.2 LL(1)法四元式翻译器构造 2. LL(1)分析器的扩展 1. 设置 语义栈:SEM[m] 四元式区:QT[q] 语法栈:SYN[n] ; (2) 当动作符号位于栈顶时,执行之; (1) 当产生式(逆序)压栈时,动作符号也不例外; 3. 属性翻译文法设计 E - T E′ ① E′- + T {GEQ(+)} E′②| - T {GEQ(-)} E′③| ? ④ T - F T′⑤ T′- * F {GEQ(*)} T′⑥| / F {GEQ(/)} T′⑦| ? ⑧ F - i {PUSH(i)} ⑨ | ( E ) ⑩ 晨山侮徐吐心占岛踞罪探瞩蛇苛圈懈溉北碴铁鹰阴玉沿醒好严侮炬湿刻丰第6章 中间代码及其翻译第6章 中间代码及其翻译 4. LL(1)分析表 ⑥ * ⑦ / ⑩ ⑤ ① ( ⑧ ④ ) ⑤ T ⑧ ⑧ ⑧ T` ⑨ F ④ ③ ② E` ① E # - + i 【例6.13】a+b*c# 四元式 LL(1)法翻译过程: SEM[m] QT[q] 操作 w x SYN[n] #E a E PUSH①R # E`T T a PUSH⑤R T`F #E` F a PUSH⑨R #E`T` PUSH(a)a a a #E`T`PUSH(a) + NEXT(w) a #E`T` T` + a PUSH⑧R #E` E` + PUSH②R a # E`GEQ(+)T+ + + a NEXT(w) b #E`GEQ(+)T T PUSH⑤R a #E`GEQ(+) T`F F b PUSH⑨R a 接下页 胖堆裹缸郑总璃半央弄鲜厘使锌蹿迫也揪炭攫尖理末交舔贺炸元渡尹掉铝第6章 中间代码及其翻译第6章 中间代码及其翻译 【例6.9】a+b*c# 四元式 LL(1)法翻译过程(续1): SEM[m] QT[q] 操作 w x SYN[n] #E`GEQ(+)T` PUSH(b)b b b NEXT(w) a #E`GEQ(+)T`PUSH(b) * a b #E`GEQ(+)T` * T` ab PUSH⑥R #E`GEQ(+) T`GEQ(*)F* * ab * NEXT(w) c #E`GEQ(+)T`GEQ(*)F ab F PUSH⑨R #E`GEQ(+)T`GEQ(*) c ab PUSH(c) c c NEXT(w) # ab #E`GEQ(+)T`GEQ(*) PUSH(c) c #E`GEQ(+)T`GEQ(*) # abc (1) (*b,c,t1) # E`GEQ(+) T` # a T` # E`GEQ(+) # a t1 (2) (+a,t1,t2) # E` t2 # E` # # t2 ok 接上页 t1 PUSH⑧R PUSH④R 伦泄题逞玲些辟缸杂雀近藐焊逗履饲功进哗脾翔陡豁舱富糙怀跋常姿彭抱第6章 中间代码及其翻译第6章 中间代码及其翻译 6.4.3 LR()法四元式翻译器构造 1. 设置 2. 属性翻译文法设计 语义栈:SEM[m] 四元式区:QT[q] 语法栈:SYN[n] ; Z-E 0 E-E + T{GEQ(+)} ① | T ② T-T * F{GEQ(*)} ③ | F ④ F-i{PUSH(i)} ⑥ | ( E ) ⑤ 3. LR() 分析器的扩展 ※ LR()分析表中的 r(i) 执行下述两种操作: ① 首先执行动作符号(翻译函数); ② 然后执行归约操作(按产生式 i 归约)。 动作符号一定在最右侧 啄引杭伙自伦卸乃焚膊绩搐柴迅川命泰呼吱荐状摄腿黍乓圾婉亡豁云楼汪第6章 中间代码及其翻译第6章 中间代码及其翻译 I1:Z ? E ? E ? E ? + T I4:E? T ? T? T ? * F I7:T ?
您可能关注的文档
- 第2章_弹力学问题有限单元的一般原理.ppt
- 第2章增值习题.doc
- 第2章分布数据库概念.ppt
- 第2章增值.ppt
- 第2章总账统应用基础2.ppt
- 第2章客服网络营销课程课件).ppt
- 第2章作业2-3_2-15.ppt
- 第2章数据管理系统基础知识.ppt
- 第2章线性.ppt
- 第2章线性A-2.ppt
- 金字塔结构赋能柔性滑触觉传感器:设计、性能与应用的深度解析.docx
- 中医心理TIP技术对偏执型精神分裂症康复作用的深度剖析——基于双案例的质性研究.docx
- 网络契约式学习平台的深度设计与实践实现研究.docx
- 协同增益:叶面施锌与氮磷钾肥配施提升小麦籽粒富锌潜力及机制探究.docx
- 中国证券市场中产品市场竞争与公司资本结构的联动效应及策略优化研究.docx
- 基于GIS的四川省区域经济差异与空间结构演变:特征、机制与启示.docx
- 大承气汤对脓毒症大鼠p38MAPK通路的调控机制研究:炎症反应与脏器保护视角.docx
- 小剂量过氧化氢对大鼠心肌细胞内钙及凋亡的影响机制探究.docx
- 从《卢布林的魔术师》与《童爱》看辛格小说男性性别身份建构.docx
- 超高温快速煅烧石灰:特性剖析与转炉渣中溶解行为的深度洞察.docx
原创力文档


文档评论(0)