- 0
- 0
- 约1.44千字
- 约 35页
- 2024-01-24 发布于广西
- 举报
第8章语法制导翻译
和中间代码生成;语义分析是指审查语法结构合法的程序
是否真正有意义。即审查源程序有无语义错
误,为代码生成收集信息。
中间代码,又称中间语言,是复杂性介
于源程序和机器语言的一种形式。
语法制导翻译是指在语法分析过程中,
完成附加在所使用的产生式上的语义规那么描
述的动作。;教学内容:;教学方式:
讲授式+启发式;教学目的:;教学重点:
1、语法制导翻译根本思想。
2、基于属性文法的处理方法。
3、自下而上分析制导翻译概述。;教学难点:
属性文法的处理方法
教学时数:
2学时;8.1属性文法;属性文法;表达式文法E→T+T|TorT
T→n|b
E→T1+T2
{T1.type=int
T2.type=T1.type E.type:=int}
E→T1orT2
{T1.type=bool
T2.type=T1.type
E.type:=bool}
T→n
{T.type:=int}
T→b
{T.type:=bool};一个简单算数表达式求值的语法制导定义;惟独digit只使用综合属性;继承属性;Realid1,id2,id3;8.2语法制导翻译概论;8.4中间代码的形成;逆波兰记号〔后缀式〕;逆波兰记号的扩充用途;逆波兰例如;三元式和树形表示;四元式;四元式的特点;四元式的直观表示;8.4一些语句翻译
简单赋值语句的翻译;(2)E?E1+E2
{E.place:=newtemp;
emit(E.place“:=〞E1.place“+〞E2.place)}
(3)E?-E1
{E.place:=newtemp;
emit(E.place“:=〞“uminus〞E1.place)}
(4)E?(E1)
{E.place:=E1.place}
(5)E?id
{E.place:=newtemp;
P:=lookup(id.name);
ifP?nilthenE.place:=P
elseerror}
;布尔表达式翻译;条件语句的翻译;E.false;1;以上的转移地址并不能在产生四元式时得知,是在整个四元式产生完毕才知,因此需回填地址。
为了记录回填地址的四元式,常采用一种“拉链〞的方法。把需回填E.true的四元式拉成一链,把需回填E.false的四元式拉成一链,分别称为“真〞链和“假〞链。;;(1);;自下而上分析中的一种翻译方案:;
您可能关注的文档
最近下载
- 中职英语高教版英语3 基础模块Unit 3 Artificial Intelligence课件.ppt
- 2022年吉林司法警官职业学院单招职业技能考试试题及答案解析.docx VIP
- 2021年吉林司法警官职业学院单招职业技能试题及答案解析.docx VIP
- 2025年江苏苏州中考化学试题及答案.pdf VIP
- (完整版)《建筑工程施工质量验收统一标准》GB50300-2021.pdf VIP
- 2025-2026学年小学综合实践活动沪科黔科版三年级下册-沪科黔科版教学设计合集.docx
- 2025年江苏苏州中考物理试题及答案.pdf VIP
- 《与拖延“坏朋友”说再见》(课件) 心理健康.ppt
- 放射安全防护培训课件.ppt VIP
- AP物理C力学 2014年真题 (选择题+问答题) AP Physics Mechanics 2014 Real Exam and Answers (MCQ+FRQ).pdf VIP
原创力文档

文档评论(0)