第8章 运行时的存储管理.pptx

第8章 运行时的存储管理?开设本章的目的 逻辑上,在考虑代码生成之前,编译程序必须进行目标程序运行环境的设计和数据空间的分配。 因为一个程序要投入运行,不仅翻译后的目标代码需要存储空间,而且对于程序中定义的各种类型的变量和常数也要分配运行时的存储空间,此外还要保存程序的一些控制和管理信息。 一个用高级语言编写的程序要投入运行, 一组可运行的代码,这组代码应与高级语言的程序等价; 程序语言的编译系统。涉及 一个运行环境,对程序中的变量做存储分配,提供各种运行信息。 变量以及变量的存储分配和存储管理的问题。涉及§8.1 存储组织一、运行时内存的划分 编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳:1. 生成的目标代码空间;2. 目标代码运行时的数据空间。代码空间 这是经翻译后的目标代码的存储区域,线性存放着目标指令序列。这是固定长度的,即在编译时能确定的。数据空间 每个程序都定义一定数量的各种类型的变量和常量,必须为之分配相应的存储空间。 用户定义的各种类型的数据对象; 保留中间结果和传递参数的临时工作单元; 调用过程时所需的连接单元; 组织输入、输出所需的缓冲区。 有些数据对象所占用的空间,在编译时能确定,其地址可以编译进目标代码; 有些数据对象具有可变体积和待编译性质,无法再编译时确定存储空间的位置。动态存储分配静态存储分配数据空间的分配名字 存储位置

文档评论(0)

1亿VIP精品文档

相关文档