- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课件chap08(陈火旺)
2.传地址 所谓传地址,是指把实在参数的地址传递给相应的形式参数所对应的形式单元。如果实在参数是一个变量(包括下标变量),则直接将该变量的地址传给相应的形式单元;如果实在参数是常数或表达式,则先计算其值并存放在某一临时单元中,然后将这个临时单元的地址传给相应的形式单元。被调用过程执行时,对形式参数的任何引用或赋值都被处理成对形式单元的间接访问,即按形式单元中存放的地址转到调用过程的活动记录中去访问实在参数。 第八章 运行时存储空间组织 对形式参数的任何运算实际上都是对实在参数的运算,而形式参数只不过起到辅助查找到实在参数的指针的作用。因此,当被调用过程工作完毕返回时,形式单元所指的实在参数单元就保留了运算的结果。 第八章 运行时存储空间组织 3.传名 传名是高级语言ALGOL 60所定义的一种特殊的参数传递方式,其传递参数的方法如下: (1) 过程调用的作用相当于把被调用过程的过程体复制到调用处(替换调用语句),并将过程体中所有出现的形式参数在文字上替换成相应的实在参数。这种文字上的替换称为宏扩展(Marcro Expansion)。 第八章 运行时存储空间组织 (2) 被调用过程中的局部名如果与过程调用的实在参数名发生冲突,则在宏扩展前对被调用过程中的这些局部名重新命名以避免重名冲突。 (3) 为表现实在参数的整体性,必要时在替换前把实在参数用括号括起来。 传名这种参数传递方法因其操作过于复杂现在已很少采用。 第八章 运行时存储空间组织 6.5.2 不同参数传递方法的比较 为了描述不同参数传递方法下程序的执行,我们将动态栈和活动记录结合起来简化为一种动态图。采用动态图的方法来对程序的执行进行描述时,即记录主程序和过程(或函数)的调用、运行及撤消各个阶段的状态,以及程序运行期间所有变量和过程(或函数)中传值与传地址的变化过程。动态图规则如下: 第八章 运行时存储空间组织 (1) 动态图纵向描述主程序、过程或函数各层之间的调用关系,横向由左至右按执行的时间顺序记录主程序、过程(或函数)中各变量值的变化情况。 (2) 过程(或函数)的传值的形式参数均看作是带初值的局部变量(也可用箭头来表示实在参数传给形式参数的指向),其后,形式参数就作为局部变量参与过程(或函数)的操作。对于传地址方式,由于形式参数的作用就像指向实在参数的指针,故动态图中形式参数一律指向与其对应的实在参数变量(注意,两者位于动态图相邻的两层上; 第八章 运行时存储空间组织 如果实在参数为表达式,则用一个临时变量来代表这个表达式);此后,所有对形式参数的操作都是根据形式参数箭头所指对实参变量进行的。 ? (3) 主程序,过程(或函数)按运行中的调用关系由上向下分层,各层(相当于活动记录)说明的变量(包括形式参数)都依次列于该层首列,各变量值的变化情况按时间顺序记录在与该变量对应的同一行上。 第八章 运行时存储空间组织 以下面的程序为例,对三种参数传递方法进行比较。 program parament; int: A,B procedure P(x,y,z); { Y=Y+1; Z=Z+X } { 第八章 运行时存储空间组织 A=2; B=3; P(A+B,A,A); print A } (1) 传值:用T代表A+B的临时变量,则对图6–17所示的动态图分析得A=2。 (2) 传地址:用T代表A+B的临时变量,则对图6–18所示的动态图分析得A=8。 第八章 运行时存储空间组织 图6–17 传值时的动态图 第八章 运行时存储空间组织 图6–18 传地址时的动态图 第八章 运行时存储空间组织 (3) 传名:由于传名时的过程调用就是把过程体抄到调用出现的地方,所以实际执行的程序为: A=2; B=3; A=A+1; /*形参Y换成A*/ A=A+(A+B); /*形参Z换成A,形参X换成(A+B)*/ print A 经分析得A=9。 第八章 运行时存储空间组织 不同的参数传递方法得到的结果不同,因此,如何选择参数传递的方法将影响语言的语义,这是编译程序在处理参数传递时应引起重视
您可能关注的文档
- 综合接地的设置要求.doc
- 综合楼强制性条文计划.docx
- 综合实习要求-2015.ppt
- 综合性学习:世界何时铸剑为犁4.ppt
- 综合英语二下册课文翻译(二).doc
- 维修技术基础电器培训.ppt
- 综采放顶煤规程.docx
- 绿孔雀肠道细菌.doc
- 绿地门机安装方案.doc
- 综合课程。(关于读书的).ppt
- 2025年2024甘肃会计从业资格考试《会计电算化》巩固题及答案.docx
- 子宫平滑肌瘤恶变子宫内膜间质肉瘤型护理查房.docx
- 2025河南驻马店市正阳县县管国有企业招聘20人(第二批)笔试参考题库附答案.docx
- 2024年青海海西州纪委监委人员招聘笔试真题.docx
- 2025黑龙江鸡西市鸡东县人民法院公开招聘司法辅助人员7人笔试历年题库含答案分析.docx
- 2024年惠州市惠东县大岭街道招聘村组干部储备人选真题.docx
- 2025内蒙古华润万家额尔敦路店招聘笔试高频考点题库试题含解析.docx
- 2024年惠州市龙门县龙华镇招聘村“两委”干部储备人选真题.docx
- 2025年安徽淮南新华书店有限公司人民公园店工作人员招聘7人笔试题带答案.docx
- 2024年惠州市龙门县龙华镇招聘村两委干部储备人选考试真题.docx
最近下载
- 2024-2030年中国白羽鸡行业发展潜力及投资价值研究报告.docx
- DB51_T5058-2020:四川省抗震设防超限高层民用建筑工程界定标准.pdf VIP
- 腰椎间盘突出症医学课件.ppt VIP
- 腰椎间盘突出症医学课件.ppt VIP
- 电动汽车充电策略动态优化模型及仿真分析.docx VIP
- Q-CR9149-2018铁路大型临时工程和过渡工程设计规范(附条文).pdf VIP
- 《地理信息系统导论》复习资料(要点).pdf VIP
- 2024年天津市河东区中考英语模拟试卷(3月份)(含详细答案解析).docx VIP
- 《功能型无人车通用技术条件》.pdf VIP
- 机械维修的主要事迹范文(共10篇).pdf VIP
原创力文档


文档评论(0)