Files
Construction-of-Compilers/Project-01/uap25-pro01-tram/tramcode/wrapper.tram
Jan-Niclas Loosen b0974af092 Start with project
2025-10-23 13:45:02 +02:00

29 lines
634 B
Plaintext

// Quellkode: let wrapper(number, threshold) {
// let square(x) {
// if (x*x > threshold) x
// else x*x
// }
// in square(number)
// }
// in wrapper(4, 10)
// Annahmen: Die Argumente von wrapper werden durch die Kellerzellen 0 und 1 repraesentiert,
// sowie PP=0, FP=0 und TOP=-1
CONST 4
CONST 10
INVOKE 2 LWRAPPER 0
HALT
LWRAPPER: LOAD 0 0
INVOKE 1 LSQUARE 0
RETURN
LSQUARE: LOAD 0 0
LOAD 0 0
MUL
LOAD 1 1
GT
IFZERO L1
LOAD 0 0
RETURN
L1: LOAD 0 0
LOAD 0 0
MUL
RETURN