- 4
- 0
- 约2.36千字
- 约 18页
- 2023-05-30 发布于浙江
- 举报
编译原理
Principles of Compilers
第七章 程序运行环境组织
7.1 概述
运行时环境(runtime environment)
程序设计语言中涉及许多抽象概念,包括名称、作用域、数据类型、运算符、过程、参数等;
编译器必须与操作系统等系统软件配合,以准确地实现这些抽象概念;
编译器通过运行时环境来实现以上目标。
e.g. JRE, CLR
运行时环境的作用
为源程序中的命名对象分配存储空间;
决定目标程序如何访问变量;
类型检查与异常处理;
实现过程间的连接(参数传递机制);
与其它系统软件交互。
7.1 概述
本章内容
存储组织
栈式分配
堆式存储管理
垃圾回收
内存使用规范
7.2 存储组织
存储空间
一般的来说,编译器假设程序在连续的逻辑内存空间中运行;
编译器与运行时环境决定程序如何使用这个逻辑空间;
操作系统负责将逻辑空间映射到物理空间。
7.2 存储组织
存储分配策略
静态分配:为同名对象分配相同的空间,适用于在编译的时候就能够确定的对象,如全局变量;
动态分配:在运行时才能分配内存的对象,如局部变量;
栈式存储:在栈中为过程内局部变量分配空间,每当该过程被调用的时候就向栈中压入为该过程分配的空间,每当该过程调用结束的时候则弹出被分配的空间;
堆存储:按需分配存储空间,在程序需要的时候分配内存,而当程序不需要的时候释放内存。
7.2 存储组织
例
原创力文档

文档评论(0)