下载此文档

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


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

编译原理 存储组织PPT教案 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数81
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小6.41 MB
  • 时间2021-05-11