Compiler-Übungen

(ist gleichzeitig Wiederholung Rekursion)

1. implementiere fehlende Codegenerierung/Runtime für

let { p = new 42 
    ; f = \ x -> if (x == 0) then 1 
                 else  (x * (get p) (x-1)) 
    ; foo = put p f 
    } in f 5

2. ergänze das Programm, so daß 5! mathend000# ausgerechnet wird

let { f = label x (tuple x 5 1) } 
in  if ( 0 == nth 1 f ) 
    then nth 2 f  
    else jump ...
              (tuple ... ... ...)



Johannes Waldmann 2014-03-31