HP Pascal/iX Programmer's Guide (31502-90023)

7- 23
VAR
i : integer;
BEGIN {p}
param1(v);
param2(v);
i := param3(v);
END; {p}
PROCEDURE actual1 (a : integer);
PROCEDURE actual2 (b : integer);
FUNCTION actual3 (c : integer) : integer;
BEGIN {actual3}
p(actual1,actual2,actual3,100);
END; {actual3}
BEGIN {actual2}
.
.
END; {actual2}
BEGIN {actual1}
.
.
END; {actual1}
BEGIN
.
.
.
END.
Including hidden parameters ( highlighted), the physical parameter order
that appears in the preceding program as p(actual1,actual2,actual3,100)
is:
-----------------------------------------------------------
| |
| Procedure label for procedure
actual1
|
| |
-----------------------------------------------------------
| |
| Procedure label for procedure
actual2
|
| |
-----------------------------------------------------------
| |
| Function label for function
actual3
|
| |
-----------------------------------------------------------
| |
| Value 100 |
| |
-----------------------------------------------------------
| |
| Static link for procedure actual1 (nil) |
| |
-----------------------------------------------------------
| |
| Static link for procedure actual2 (actual1's locals) |
| |
-----------------------------------------------------------
| |
| Static link for function actual3 (actual2's locals) |
| |
-----------------------------------------------------------