图10.22 嵌套过程作为参数传递
  (1) program param(input, output);
    //例程param的头
  (2) procedure b(function h(n:integer): integer);
    //嵌套过程b的头,其形式参数是一个具有一个整型形参n的整型函数h
  (3)  begin writeln(h(2)) end {b};//b的过程体
  (4) procedure c; //嵌套过程c的头
  (5)  var :integer;
  (6)  function f(n;integer): integer;
     //过程c中嵌套定义的具有一个整型形参n的整型函数f
  (7)   begin f∶=+n end{f};//f的函数体
  (8)  begin ∶=0;b(f) end{c};
     //c的过程体,其中b(f)调用b函数,
     //而实参是函数f,调用时替换形参函数h
  (9) begin
  (10) c
  (11) end
图10.23 连同存取链一起传递过程实参
  一般来讲,过程P把过程T做为实参传递给Q时,也是一种"传地址"方式,P可以先建立两个相继的临时单元,第一个单元B1存放过程T的入口地址;第二单元B2存放现行display地址或存取链地址。然后把第一临时单元地址传送给Q(即放置于Q活动记录的形式单元,比方说Z中)。假定过程Q执行到引用形参Z时,Z中已含有上述B1的地址,则B1的内容将用来作为转子指令的目的地址(即转进过程T)。B2的内容将传送给T。
  除了实参是过程的情况外,还有实参为数组的情况,实参为标号的情况以及实参为形式参数的情况。我们不再讨论。