10 -------------------- (1) + (9) -------------------- (14) - (4) -------------------- (5) * (2) -------------------- (21) / (2) -------------------- (3) = (2) -------------------- (3) = (3) -------------------- (2) < (2) -------------------- (3) < (4) -------------------- not (true) -------------------- not (false) -------------------- 2; 1 -------------------- let x := (1) in x -------------------- let x := (3) in read x -------------------- let x := (3) in read x; x -------------------- write 1 -------------------- if true then 1 else 2 -------------------- if false then 2 else 1 -------------------- let x := (let x := (2) in x) in let x := (1) in x -------------------- let x := (3) in x := (1); x -------------------- let x := (1) in let x := (1) in x := (3); x -------------------- let x := (2) in let y := (x := (1); 10) in x -------------------- let x := (3) in if x := (1); true then x else 2 -------------------- let x := (3) in if x := (1); false then 2 else x -------------------- let x := (3) in if true then x := (1) else x := (1); x -------------------- let x := (3) in write x := (1); 1; x -------------------- let proc f(x) = x := (2) in let z := (1) in f(z); z -------------------- let proc f(x) = x := (1) in let z := (2) in f; z -------------------- let x := (3) in let proc f(p) = x := (1) in f(4); x -------------------- let x := (3) in let proc f(p) = x := (1) in f; x -------------------- let x := (3) in let proc f(p) = 2 in x := (1); x -------------------- let proc f(x) = if (x) = (1) then 1 else (x) * (f((x) - (1))) in f(5) -------------------- let k := (5) in let proc f(x) = if (x) = (1) then 1 else let x2 := ((x) - (1)) in (x) * (f) in f -------------------- let r := (0) in let x := (1) in while false do false -------------------- let r := (0) in let x := (1) in while (x) < (11) do r := ((r) + (x)); x := ((x) + (1)); r -------------------- let z := (0) in let r := (0) in let x := (1) in while z := ((z) + (1)); (x) < (11) do r := ((r) + (x)); x := ((x) + (1)); z -------------------- let proc max(x,y) = if (x) < (y) then y else x in let x := (10) in let y := (20) in max -------------------- let r := ({a:=1,b:=2,c:=3}) in (r).a := 4; ((r).a) + ((r).b) --------------------