青岛大学信息工程学院
编译原理与技术
第 7 章 运行时环境
青岛大学信息工程学院编译原理与技术2
主要内容
程序运行的基本概念
参数传递机制
静态运行时环境
运行时存储空间的组织和管理
栈式运行时环境
堆式运行时环境
青岛大学信息工程学院编译原理与技术3
7.1 程序运行的基本概念
过程及其活动
–
过程定义是把一个名字和若干语句联系起来
的一个声明。
–
这个名字是过程名,而这些语句就是过程体。
返回值的过程通常称为函数,完整的程序也
可以看作一个过程。
–
在面向对象技术中,过程叫做方法或操作。
–
本章把过程、函数、方法这样的程序单元统
称为过程。
青岛大学信息工程学院编译原理与技术4
7.1 程序运行的基本概念
过程及其活动
–
当过程名出现在程序中作为一个语句或表达
式使用时,就称这个过程在程序点被调用。
–
过程调用就是执行被调用过程的过程体。
–
出现在过程定义中的参数叫做形式参数(形
参),在过程调用点取代形参的称为实在参
数(实参)。
青岛大学信息工程学院编译原理与技术5
7.1 程序运行的基本概念
program sort(input, output)
var a: array [0..10] of integer;
procedure readarray;
var i: integer;
begin
for i := 1 to 9 do read (a[i])
end;
function partition (y, z: integer): intege
r
var i, j, x, y: integer;
begin
...
end;
procrdure quicksort (m, n: integer);
var i: integer;
begin
if ( n > m ) then
begin
i = partition (m, n);
quicksort (m, i1);
quicksort (i+1, n);
end;
end;
begin
a[0] := 9999;
a[10] := 9999;
readarray;
quicksort(1, 9);
end;