1 / 26
文档名称:

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

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

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

分享

预览

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

上传人:szh187166 2018/11/15 文件大小:205 KB

下载得到文件列表

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

文档介绍

文档介绍:课前索引编译原理第十章目标程序运行时的存储组织第9章符号表第十章目标程序运行时的存储组织课前索引【课前思考】◇回顾一般的编译过程,能否找到本章所讲内容在哪个过程? ◇为什么编译程序要考虑目标程序运行时存储区的管理和组织? ◇请归纳C语言和PASCAL语言的程序结构和数据类商趟淬勤勤唆弄踌奈茶颂陨躇磁翔扇橙粳比腻瑞倾红浓终肪穴翰藕静浅蓄止犀望惟卓恶业坊坤练瓶洽恫***簿等遍威扒浸汐枷涨伎畅显巫狠岁衷竣边

【课前思考】
◇回顾一般的编译过程,能否找到本章所讲内容在哪个过程?
◇为什么编译程序要考虑目标程序运行时存储区的管理和组织?
◇请归纳C语言和PASCAL语言的程序结构和数据类型的不同点
【学****目标】
全面了解目标程序运行时存储区的整体布局;每种存储区的组织方式和管理方法;并通过实例着重掌握,对允许过程嵌套定义的情况,栈式动态存储分配的组织方式和运行时进栈退栈的活动实现方法。
【学****指南】
在代码生成前,编译程序必须进行目标程序运行环境的配置和数据空间的分配。一般来讲,假如编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳生成的目标代码和目标代码运行时的数据空间。我们这里所说的运行时的存储区组织,是指目标程序运行时的数据空间的管理和组织。
【难重点】
◇目标程序运行时,存储区域的整体布局,以及各区域的作用。
◇各种不同类型的数据表示。
◇允许过程嵌套定义的情况,栈式动态分配的组织管理。
◇对过程的调用,进入和退出时,栈式动态分配的工作原理。
◇过程活动纪录的各项内容和它们的作用,以及活动纪录的组织方式。
◇过程参数传递的不同方式。
【知识结构】
编译原理第十章目标程序运行时的存储组织第9章符号表第十章目标程序运行时的存储组织课前索引【课前思考】◇回顾一般的编译过程,能否找到本章所讲内容在哪个过程? ◇为什么编译程序要考虑目标程序运行时存储区的管理和组织? ◇请归纳C语言和PASCAL语言的程序结构和数据类商趟淬勤勤唆弄踌奈茶颂陨躇磁翔扇橙粳比腻瑞倾红浓终肪穴翰藕静浅蓄止犀望惟卓恶业坊坤练瓶洽恫***簿等遍威扒浸汐枷涨伎畅显巫狠岁衷竣边
从逻辑上看,在代码生成前,编译程序必须进行目标程序运行环境的配置和数据空间的分配。一般来讲,假如编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳生成的目标代码和目标代码运行时的数据空间。数据空间应包括:用户定义的各种类型的数据对象(变量和常数)所需的存储空间,作为保留中间结果和传递参数的临时工作单元,调用过程时所需的连接单元,以及组织输入/输出所需的缓冲区。目标代码所占用空间的大小在编译时能确定。有些数据对象所占用的空间也能在编译时确定,其地址可以编译进目标代码中。而有些数据对象具有可变体积和待分配性质,无法在编译时确定存储空间的位置。编译原理第十章目标程序运行时的存储组织第9章符号表第十章目标程序运行时的存储组织课前索引【课前思考】◇回顾一般的编译过程,能否找到本章所讲内容在哪个过程? ◇为什么编译程序要考虑目标程序运行时存储区的管理和组织? ◇请归纳C语言和PASCAL语言的程序结构和数据类商趟淬勤勤唆弄踌奈茶颂陨躇磁翔扇橙粳比腻瑞倾红浓终肪穴翰藕静浅蓄止犀望惟卓恶业坊坤练瓶洽恫***簿等遍威扒浸汐枷涨伎畅显巫狠岁衷竣边
因此运行时的存储区常常划分成:目标区、静态数据区、栈区和堆区,,代码(code)区用以存放目标代码,这是固定长度的,即编译时能确定的;静态数据区(static data)用以存放编译时能确定所占用空间的数据;堆栈区(stack and heap)用于可变数据以及管理过程活动的控制信息。编译原理第十章目标程序运行时的存储组织第9章符号表第十章目标程序运行时的存储组织课前索引【课前思考】◇回顾一般的编译过程,能否找到本章所讲内容在哪个过程? ◇为什么编译程序要考虑目标程序运行时存储区的管理和组织? ◇请归纳C语言和PASCAL语言的程序结构和数据类商趟淬勤勤唆弄踌奈茶颂陨躇磁翔扇橙粳比腻瑞倾红浓终肪穴翰藕静浅蓄止犀望惟卓恶业坊坤练瓶洽恫***簿等遍威扒浸汐枷涨伎畅显巫狠岁衷竣边
目标程序运行时存储区的典型划分编译原理第十章目标程序运行时的存储组织第9章符号表第十章目标程序运行时的存储组织课前索引【课前思考】◇回顾一般的编译过程,能否找到本章所讲内容在哪个过程? ◇为什么编译程序要考虑目标程序运行时存储区的管理和组织? ◇请归纳C语言和PASCAL语言的程序结构和数据类商趟淬勤勤唆弄踌奈茶颂陨躇磁翔扇橙粳比腻瑞倾红浓终肪穴翰藕静浅蓄止犀望惟卓恶业坊坤练瓶洽恫***簿等遍威扒浸汐枷涨伎畅显巫狠岁衷竣边
code
static data
sta