1 / 82
文档名称:

编译原理课件第十章 目标程序运行时的存储组织.ppt

格式:ppt   大小:427KB   页数:82页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理课件第十章 目标程序运行时的存储组织.ppt

上传人:sxlw2015 2021/7/24 文件大小:427 KB

下载得到文件列表

编译原理课件第十章 目标程序运行时的存储组织.ppt

文档介绍

文档介绍:第十章 目标程序运行时的存储组织
第一节 数据空间的三种不同使用方法和管理方法
第二节 栈式存储分配的实现
第三节 参数传递
第四节 过程调用、过程进入和过程返回
1
知识结构
2
概述
静态存储分配
栈式存储分配
堆式存储分配
本章小结
第八章 运行时的存储组织与管理
3
概述
从逻辑上看,代码生成前,编译程序必须进行目标程序运行环境的设计和数据空间的分配
所谓运行时的环境是指目标计算机的寄存器和存储器的结构,以及用来管理存储器并保存执行过程所需要的信息。
几乎所有的程序设计语言都使用3种类型的存储环境:完全静态环境、基于栈的存储环境和基于堆的存储环境中的一种或几种。
4
概述
从逻辑上看,代码生成前,编译程序必须进行目标程序运行环境的设计和数据空间的分配
数据空间包括:用户定义的各种类型的数据对象(变量和常量)所需的存储空间,作为保留中间结果和传递参数的临时工作单元,调用过程时所需的连接单元,组织输入/输出所需的缓冲区。
5
概述
存储管理复杂度取决于源语言本身,具体包括:
允许的数据类型的多少
语言中允许的数据项是 静态确定
动态确定
程序决定名字的作用域的规则和结构
段结构
过程定义不嵌套,只允许过程递归调用
分程序结构 分程序嵌套
过程定义嵌套
6
存储区划分成:目标区、静态数据区、栈区、堆区:
目标代码区用以存放目标代码,这是固定长度的,即编译时能确定的
全程/静态数据区用以存放编译时能确定所占用空间的数据
堆/栈区用于可变数据以及管理过程活动的控制信息
目标代码区
全程/静态数据区


自由空间


运行时存储空间的划分
7
过程的活动记录
过程的活动记录是一段连续的存储区,用来存放过程的一次执行所需要的信息。
自变量(参数空间)
返回地址
用作局部数据的空间
用作局部临时变量的空间
过程活动记录
8
编译程序分配目标程序运行时的数据空间的基本依据是
 程序语言设计时对程序运行中存储空间的使用和管理办
 法的规定
在程序设计语言语义学中,使用environment表示将一个
 名字映射到一个存储位置的函数,state表示存储位置到
 值的映射,:
9
数据空间的使用和管理方法分成三种:
静态存储分配
栈式动态存储分配
堆式动态存储分配
10

最近更新

用于肿瘤治疗的还原敏感性聚醚—聚酸酐胶束的.. 2页

钢结构安装方案2 30页

生物医用钛基植入体材料表面纳米结构的构建及.. 2页

2024年教育培训项目项目投资需求报告代可行性.. 57页

甜玉米农艺、品质性状相关及配合力分析的开题.. 2页

瑕疵出资的股东权利限制法律问题研究的开题报.. 2页

玻璃基广角宽带薄膜硅太阳电池用减反射膜的研.. 2页

现代汉语缩略语的认知研究的开题报告 2页

数字风控可行性报告 29页

房车露营的可行性报告 28页

特效与镜头在游戏表现力中的应用的开题报告 2页

物流行业上市公司价值评估问题研究中期报告 2页

对甲苯磺酸可行性报告 31页

热电燃煤掺烧配比分析系统的设计与实现的开题.. 2页

天心易学指标可行性报告 31页

增设培训工种可行性报告 38页

商务车可行性报告 33页

滚珠丝杠副故障测试试验台与测控系统设计的开.. 2页

单位投资项目可行性报告 36页

湖北省食用菌加工企业技术效率及其影响因素研.. 2页

温拌沥青混合料路用性能研究的开题报告 2页

公司绿化的可行性报告 32页

深基坑开挖对邻近既有隧道力学效应影响规律研.. 2页

传统村落修缮可行性报告 37页

液压整形机供给装置在线检测及控制系统设计中.. 2页

乡村爱情的可行性报告 31页

海洋铺管船用张紧器履带系统的研究的开题报告.. 2页

酸奶制作及营养成分分析课件 21页

乡镇卫生院常见病门诊和住院诊疗规范 66页

七年级下血液测试 1页