HW 1: 1.2 2 points; 1.4 8 points; 1.5 4 points; 1.6 1 point; total 15 points.

HW 2: 2.2 3 points (1 per part), 2.3 4 points (1 for showing the three tombstone diagrams, 1 per part), 2.4 4 points (1 for showing the three tombstone diagrams, 1 per part), 2.5 4 points (1 per part), 2.6 3 points (1 per each of compiler, interpreter, and disassembler), 2.8 2 points (1 per strategy), 2.9 2 points, total 22 points.

HW 3: Total 27 points . 3.1 10 points, 5 points per part. One point removed if no decorated AST given, one point removed if no code given. One point removed if steps analogous to those in Example 3.2 are not described, one point removed if steps analogous to those in Example 3.4 are not described. 3.2 10 points. 4 points for syntactic analysis, 4 points for contextual analysis, 2 points for code generation. Up to two points removed for the first two parts, if steps analogous to those in Examples 3.1 and 3.2 are not described. One point removed for the third part, if steps analogous to those in Example 3.4 are not described. 3.3, 2 points. 3.5, 3 points. 3.6, 2 points.

HW4: Total 15 pts. 4.1. 10 pts. 4.2. 5 pts.

PR1 (Tokens): Total 6 points, 2 for each of the first 2 parts

PR2 (JLex): Total 8 points.

PR3 (Parsing Unix shell language): Total 10 points

PR4 (Lexical analysis and parsing of newspeak): Total 14 points

HW5 Total: 20 points. Exercise 4.13: 10 points; Exercise 4.14: 1 point; Exercise 4.15: 8 points; Exercise 4.16: 1 point.

HW6 Total: 20 points. Exercise 5.5: 15 points; Exercise 5.6: 2 points for part (a), 2 points for part (b); Exercise 5.7: 1 point.

HW8 Total 12 points: 1 point per part. (a) Pascal constant known value, (known address) Pascal variable declaration: (unknown value), known address Pascal procedure declaration: known routine Pascal value parameter: (unknown value), known address (like i in Fig.7.6) Pascal variable parameter: (unknown value), unknown address (like n in Fig.7.6) Pascal procedural parameter: unknown routine (like p on p.298) (b) ML value declaration: (unknown value), known address ML function declaration: known routine ML value parameter: (unknown value), known address ML does not have variable parameters ML procedural parameter: unknown routine (like p on p.298) (c) Java variable declaration: (unknown value), known address Java value parameter: (unknown value), known address (like i in Fig.7.6) Java does not have variable parameters