Exer 1.1 (p. 38) lexical error 3.14.159 syntax error X = A B ; static semantic int x = "abc" ; dynamic semantic int X[5] ; X[5] = 15 ; can't check or determine at run-time int x = ReallyComplicatedMathFuncationThatCouldDivideBy0(z) int x = undecible(z) stack overflow due to recursion Problem 3.6 (p 168) Prints [9 4 2 3] << textbook >> call B(3) B(3): sets a to 9 sets x to 9 call R(1) R(1): sets m to 1 prints 9 sets x to 4 calls R(2) R(2): sets m to main:g ? | B(3) main:g ? | B:a 3 x = a*a main:g ? | B:a 3, B:x 9 | R(1) main:g ? | B:a 3, B:x 9 | R:m 1 write_integer(x) 9 x /:= 2 main:g ? | B:a 3, B:x 4 | R:m 1 R(m + 1) main:g ? | B:a 3, B:x 4 | R:m 1 | R:m 2 write_integer(x) 4 x /:= 2 main:g ? | B:a 3, B:x 2 | R:m 1 | R:m 2 R(m + 1) main:g ? | B:a 3, B:x 2 | R:m 1 | R:m 2 | R:m 3 write_integer(x) 2 x /:= 2 main:g ? | B:a 3, B:x 1 | R:m 1 | R:m 2 | R:m 3 A(m) main:g ? | B:a 3, B:x 1 | R:m 1 | R:m 2 | R:m 3 | A:n 3 g = n main:g 3| B:a 3, B:x 1 | R:m 1 | R:m 2 | R:m 3 | A:n 3 main:g 3| B:a 3, B:x 1 | R:m 1 | R:m 2 | R:m 3 main:g 3| B:a 3, B:x 1 | R:m 1 | R:m 2 main:g 3| B:a 3, B:x 1 | R:m 1 main:g 3| B:a 3, B:x 1 main:g 3 write_integer(g) 3 --> 9 4 2 3 Problem 3.11 (p 171) proc P proc Q, R: in P var A, C, Z: in R var B, X: in P textbook: P, B, X, Q, R, A (parameter to R), C (parameter to R), and Z. Problem 3.14 (p 171-172) Static set_x(0) global:x <-- 0 first() set_x(1) global:x <-- 1 print_x() 1 print_x() 1 second() x: integer set_x(2) global_x:x <--2 print_x() 2 print_x() 2 Dynamic set_x(0) global:x <-- 0 first() set_x(1) global:x <-- 1 print_x() 1 print_x() 1 second() x: integer set_x(2) second_x:x <--2 print_x() 2 print_x() (x from last set_x is "destroyed") 1