10.1. Your executable   

Consider the following pseudocode:


algorithm Fish ( ... )
var y: integer
begin
y y*25
end.

If this is converted into some computer language such as Pascal, Java or C, then after a compile command on this program, the computer has the machine instructions in memory ready to start. These instructions may look typically like this:

MOVE 0,y(17) ; Position of x on stack
IMULT 0,25 ; x*25
MOVEM 0,y(17) ; Stores to Stack
JRST Operating_system ; RETURN to Operating System.

The program in finally converted to Machine language instructions after being compiled and linked by a linking loader program.

/////// DATA Low address
Once it is as in Fig 1, main can call
procedure 1, 2 etc. by using address of
PROCEDURE 1 procedure 1, 2 etc. in a CALL instruction.
ALL addresses are known.
FUNCT 1
This is same situation as in PL0 when
PROCEDURE 2 program has been compiled and procedure
INTERPRET is ready to execute.
MAIN
High address
N.B.: PL0 programs are interpreted by the Java
HEAP program Pl0.java; whereas normal programs
are run through a compiler such as Pascal,
FORTRAN, COBOL which produce (finally)
machine language instructions.
Stack A Java program is interpreted just like Pl0!
Figure 1