1 / 81
文档名称:

编译原理 存储组织PPT教案.pptx

格式:pptx   大小:6,560KB   页数:81页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

编译原理 存储组织PPT教案.pptx

上传人:wz_198613 2021/5/11 文件大小:6.41 MB

下载得到文件列表

编译原理 存储组织PPT教案.pptx

文档介绍

文档介绍:编译原理_存储组织
第十章 目标程序运行时的存储组织
概述
数据空间的使用方法和管理方法
栈式存储分配的实现
参数传递
过程操作
练****br/>概述
一般来讲,假如编译程序从操作系统中得到一块存储区以位目标程序在其上运行,该存储区需容纳生成的目标代码和目标代码运行时的数据空间。
数据空间应包括:
用户定义的各种类型的数据对象(变量和常数)所需的存储空间、作为保留中间结果和传递参数的临时工作单元,调用过程时所需的连接单元、以及组织输入/输出所需的缓冲区。
运行时的存储区常常划分成:
目标区、静态数据区、栈区和堆区。
运行时存储区的典型划分
编译程序对数据空间的分配
运行时存储区的典型划分
代码(code)区用以存放目标代码,这是固定长度的,即编译时能确定的。
静态数据区(static data)用以存放编译时能确定所占用空间的数据。
堆栈区(stack and heap)用于可变数据以及管理过程活动的控制信息。
目标程序运行时存储区的典型划分
编译程序对数据空间的分配
基本原则是程序语言设计时对程序运行中存储空间的使用和管理办法的规定。
数据空间的分配:
本质上看是将程序中的每个名字与一个存储位置关联起来,该存储位置用以容纳名字的值。
在程序设计语言语义学中,使用术语environment表示将一个名字映射到一个存储位置的函数,术语state表示存储位置到值的映射。
名字到存储、到值的映射
数据空间的使用方法和管理方法
术语:
静态:如果一个名字的性质通过说明语句或隐或显规则而定义,则称这种性质是“静态”确定的。
动态:如果名字的性质只有在程序运行时才能知道,则称这种性质为“动态”确定的。
静态存储分配
动态存储分配
静态存储分配
如果在编译时能确定目标程序运行中所需的全部数据空间的大小,编译时安排好目标程序运行时的全部数据空间,确定每个数据对象的存储位置,那么则称这种分配策略为静态存储分配。
示例
FORTRAN 77的示例程序
该程序中局部变量的静态存储位置
FORTRAN 77的程序
局部变量的静态存储位置
动态存储分配
如果一个程序设计语言允许递归过程、可变数组或可变数据结构,那么,就需要采用动态存储管理技术。因为对于这种程序在编译时无法知道它在运行时需要多大的存储空间,它所需要的数据空间的大小需待程序运行时动态地确定。
分类:
栈式动态存储分配
堆式动态存储分配