中央财经大学《编译原理》课件-第8章 运行环境.pptVIP

中央财经大学《编译原理》课件-第8章 运行环境.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程

过程说明语句的翻译 分析参数的类型、分配地址 统计参数和返回值的空间需求 与调用语句配合完成形/实参数的结合 符号表处理 完成过程名的属性登记 说明语句: Procedure id(X1,X2,…,Xn) 过程说明语句代码结构 说明语句: Procedure id(X1,X2,…,Xn) 代码结构 X1.code 按参数传递要求实现参数X1的传递,或者完成传递准备; X2.code 按参数传递要求实现参数X2的传递,或者完成传递准备; …… Xn.code 按参数传递要求实现参数Xn的传递,或者完成传递准备; 完成动态存储分配相关的工作; 进入过程体 过程调用语句的代码结构 过程调用语句id(E1,E2, … ,En) E1.code a1:=E1.place … En.code an:=En.place 动态存储分配相关工作 goto pc+n+1 param a1 … param an call id.place,n 需要一个队列存放a1, a2, …, an,以生成 过程调用的实现 1) 在过程 f 中调用过程 p 时 a. f 对实在参数求值,将结果存入 p 的活动记录参数域 b. 在 p 的活动记录中存放返回地址和当前栈顶指针 c. 按照活动记录的大小,上移栈顶指针 d. 控制转到 p 的入口(过程体) 临时变量 局部变量 机器状态 参数 返回值 控制链 Display e. p 存放寄存器值和其它状态信息 f. 执行过程体 2. 从过程 p 返回:对应return语句 a. p 在返回值域中保存返回值 b. 恢复原栈顶指针和其它寄存器 c. 按返回地址返回调用者 临时变量 局部变量 机器状态 参数 返回值 控制链 Display 过程调用语句的制导翻译定义 产生式 语义规则 S → call id ( Elist ) { S.code := Elist.code ||gen(‘goto ‘pc+Elist.num+1)|| for 队列q中的每一项 t do gen(’param’ t ) || gen(‘call’ id.place’,’Elist.num) } Elist → E {Elist.num := 1; Elist.code := E.code || t:=newtemp; gen(t’:=’ E.place);建立队列q,并将t 放入q} Elist →Elist1,E {Elist.num := Elist 1.num+1; Elist.code := Elist 1.code || E.code || t:=newtemp; gen(t’:=’ E.place);将t 放入队列q} * 第8章 运行环境 (Run-Time Enviroments) 中央财经大学《编译原理》 主要内容 绑定(Binding) 存储(Storage)组织(Organization)与分配(Allocation) 参数(Parameter)传递(Passing) 过程说明与调用 符号表(Symbol Table)管理 8.1 绑定(Binding) Binding的概念 将符号名和相应目标数据(的地址)对应起来 标识符与数据目标的对应 变量名──数据存储单元地址 过程名、函数名──程序段入口地址 相关问题 变量和过程的作用域,决定绑定的有效期 分段式程序 Program layer Int a,b,c Begin …… Sub(a+b,b,a) …… End Subroutine Sub(x,y,z) Real a,b,c Begin …… End 嵌套式程序 Program layer Int a,b,c Procedure Sub1(x,y,z) Int x,y,z Procedure add(a,b) Real a,b Begin Real x,y,z x=a y=x*2+b z=1/y End Begin …… End Procedure Sub2(x,y) …… Begin …… end 绑定的时机与策略 语言定义的标识符的生存期决定最终绑定的时机 全局变量:全程有效——程序装入时 局部变量:分段有效——进入过程或分程序时 变量名的绑定 静态(Static)绑定:编译时指定(相对地址) 词法分析期间——在符号表中建立变量的表项 回忆:说明语句的语义分析:字节数计算,填写变量地址 动态(Dynamic)绑定

您可能关注的文档

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档