imagine a programming language where a command looks like this:
a1 a2 ... an p r1 r2 ... rm,
where p is a procedure, a[1; n] are the sources of its arguments and r[1; m] are the destinations for storing the results. a calculation (ax^2 + bx + c) can look like this:
x 2 power t1;
a t1 mul t1;
b x mul t2;
t1 t2 sum t1;
t1 c sum r1.
this piece can be understood as the body of a procedure where a, b, c and x are names of its arguments, r1 is the only result, and t1 and t2 are local variables.
if you translate a command to bytecode, you would have instructions for loading arguments and storing results on the stack, which would divide according to their accessing methods, and between them an instruction to invoke the command -- an intrinsic procedure or a compound one. in the case of a compound procedure, it may put a new stack context and peel it off upon return.
how would control flow be represented in this language? would conditional structures be different from regular commands, or would they stand for conditional or repeating invokation of an ad-hoc procedure? i don't know.