【课前思考】 ◇ 回顾一般的编译过程,能否找到本章所讲内容在哪个过程? ◇ 为什么编译程序要考虑目标程序运行时存储区的管理和组织? ◇ 请归纳C语言和PASCAL语言的程序结构和数据类型的不同点 【学习目标】 全面了解目标程序运行时存储区的整体布局;每种存储区的组织方式和管理方法;并通过实例着重掌握,对允许过程嵌套定义的情况,栈式动态存储分配的组织方式和运行时进栈退栈的活动实现方法。 【学习指南】 在代码生成前,编译程序必须进行目标程序运行环境的配置和数据空间的分配。一般来讲,假如编译程序从操作系统中得到一块存储区以使目标程序在其上运行,该存储区需容纳生成的目标代码和目标代码运行时的数据空间。我们这里所说的运行时的存储区组织,是指目标程序运行时的数据空间的管理和组织。 【难重点】 ◇ 目标程序运行时,存储区域的整体布局,以及各区域的作用。 ◇ 各种不同类型的数据表示。 ◇ 允许过程嵌套定义的情况,栈式动态分配的组织管理。 ◇ 对过程的调用,进入和退出时,栈式动态分配的工作原理。 ◇ 过程活动纪录的各项内容和它们的作用,以及活动纪录的组织方式。 ◇ 过程参数传递的不同方式。 【知识结构】 ![]() |