- 4
- 0
- 约8.31千字
- 约 6页
- 2017-11-03 发布于天津
- 举报
目标程序运行进的存贮组织
第九章 目标程序运行时的存贮组织
从逻辑上看,在代码生成前,编译程序必须进行目标程序运行环境的设计和数据空间的分配。一般来讲,假如编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳生成的目标代码和目标代码运行时的数据空间。数据空间应包括:用户定义的各种类型的数据对象(变量和常数)所需的存储空间,作为保留中间结果和传递参数的临时工作单元,调用过程时所需的连接单元,以及组织输入/输出所需的缓冲区。目标代码所占用空间的大小,在编译时能确定,有些数据对象所占用的空间也能在编译时确定,其地址可以编译进目标代码中。但有些数据对象具有可变体积和待编译性质,而无法在编译时确定存储空间的位置。
因此运行时的存储区常常划分成:目标区、静态数据区、栈区和堆区,如图9-1就是一种典型划分,代码(code)区用以存放目标代码,这是固定长度的,即编译时能确定的。静态数据区(static data)用以存放编译时能确定所占用空间的数据,堆栈区(stack and heap)用于可变数据以及管理过程活动的控制信息。
编译程序分配目标程序运行时的数据空间的基本依据是程序语言设计时对程序运行中存储空间的使用和管理办法的规定。所谓数据空间的分配,本质上看,是将程序中的每个名字与一个存储位置关联起来,该存储位置用以容纳名字的值。我们知道,即便有些名字在程序中只声明了一次,但该名字可能对应运行时不同
您可能关注的文档
最近下载
- TCCIAT 0074-2023 排水管道紫外光固化修复施工和验收技术规程.pdf VIP
- 2026入团考试必刷156题(含答案解析高频考点版).docx
- T_CSPSTC 127-2023 城镇排水管道封堵施工技术规程.pdf VIP
- 2026年中考第二次模拟考试:化学二模模拟卷(辽宁专用)(考试版).docx VIP
- 2023年普通高等学校招生全国统一考试(新课标2卷)地理试题 .pdf VIP
- 线性代数(第六版)赵树嫄课后习题答案.pdf VIP
- 2024《年产100吨植物乳杆菌菌剂生产线设计》10000字.docx VIP
- 2025年神东钳工考试试题及答案.docx VIP
- 2026年建筑企业安全生产合规培训课件与工地风控方案.pptx
- 餐厅厨房4D管理.pptx VIP
原创力文档

文档评论(0)