- 1、本文档共65页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈工大编译原理5-2课件
第六章 中间代码; 中间代码生成
6.1 中间语言
6.2 常用语句的翻译
6.2.1 说明语句
6.2.2 赋值语句
6.2.3 布尔表达式
6.2.4 过程语句; 序
“中间代码生成”程 序的任务是:
;6.1 中间语言
语法树
后缀式
三地址代码表示;=;赋值语句:
中 缀式: a:=b*-c+b*-c
后缀式:
a b c - * b c - * + =;=;6.1.2 三地址代码
一般形式 x:=y op z ;(3)无条件转移语句goto L;;(5)复制语句 x:=y;;6.1.4 三地址代码的具体实现;1、 x=y op z
; 对于语句a:=b*-c+b*-c 的三种表示方法;(0)
(1)
(2)
(3)
(4)
(5);arg1;相对地址:相对静态数据区基址
;一、 过程中的说明语句
;P→D ;Name type kind …… addr
X
Y
…………; 1 .问题的提出;于是提出下面的问题:
;2. 嵌套的程序结构;嵌套说明的文法:; 嵌套说明的程序结构首先要解决的问题是:非局部数据的访问; 具体翻译时,每当碰到过程说明 D→proc id;D1;S时,便创建一张符号表,并且把D1中的所有说明都填入此符号表中;Nil header
x
a
readarray
exchange
quicksort ;翻译时常用操作:;Tblptr是一个栈,用于存放指向嵌套外层过程的符号表指针;处理嵌套过程中的说明语句翻译方案 ;D→ id: T
{enter(top(tblptr),id.name,T.type, top(offset));
④ top(offset):= top(offset) +T.width} ;P;上述语法树对应的语句:
Proc Q;proc R;j:int;S;S;
; 一组嵌套过程,每个过程说明为局部名字建立一个符号表,所有正在翻译过程的符号表组成整个源程序的符号表。;三、 记录中的域名
T→ record LD end
{ T.type:=record(top(tblptr));
T.width:=top(offset);
pop(tblptr);pop(offset)}
L→ε {t:=mktable(nil);
push(t,tblptr);push(0,offset))}
为-个记录中的域名建立一张符号表
该翻译模式强调了作为一个语言结构的记录的设计与活动记录之间的相似处.;一、 符号表中的名字 ;用最近嵌套作用域规则查找非局部名字; lookup(id.name)= id.entry
nil;S→id:=E ;E→(E1) ;语义动作应包括类型分析,文法符号应有类型属性,在类型分析的基础上,进行相容和赋值相容检查,生成类型转换的三地址代码。; 数组元素的目标代码是什么? ;任一数组元素A[i1,i2, ……in]的地址为:
D=a+(i1-l1) d2d3…… dn
+(i2-l2) d2 d2 …… dn
……
+ (in-1-ln-1) dn + (in-ln) ;变量部分:v= (…… (i1 d2 +i2) d3+ i3) d4+ ……
+ in-1) dn+ in ;1、数组元素地址的计算公式
; ②对于一个二维数组,可以按行或按列存放。; base
您可能关注的文档
- 利用LINGO软件优化数学模型课件.ppt
- 利用IBM信息生命周期存储技术优化信息系统架构课件.ppt
- 利用Mathematica求函数极值课件.ppt
- 利用Mathematica画平面区域课件.ppt
- 利用TASC进行换热器振动分析课件.ppt
- 利用Protel软件画元件封装图课件.ppt
- 前列腺炎诊治指南课件.ppt
- 前台客户经理岗位职责课件.ppt
- 利用LINGO开发高级模型选讲课件.ppt
- 前台操作20110815课件.ppt
- 2024年江西省寻乌县九上数学开学复习检测模拟试题【含答案】.doc
- 2024年江西省省宜春市袁州区数学九上开学学业水平测试模拟试题【含答案】.doc
- 《GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语》.pdf
- 中国国家标准 GB/T 44275.2-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第2部分:术语.pdf
- GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- 《GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构》.pdf
- 中国国家标准 GB/T 44285.1-2024卡及身份识别安全设备 通过移动设备进行身份管理的构件 第1部分:移动电子身份系统的通用系统架构.pdf
- GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 中国国家标准 GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南.pdf
- 《GB/T 44275.11-2024工业自动化系统与集成 开放技术字典及其在主数据中的应用 第11部分:术语制定指南》.pdf
文档评论(0)