HW1: Extend the compiler correctness example in two ways. 10 points in total.

HW2: Exercises 1-0, 1-1, 1-2 [R]: 9 points (3 points per part).

HW3: Exercise 13.1 [M10]: 8 points (2 points for part (a), 4 points for part (b), 2 points for part (c)). Exercise 13.2 [M10]: 4 points (2 points per part). Total: 12 points. 5 points for part (a), 5 points for part (b), total 10 points.

HW4: Exercises 1.4 (10 point; 5 per part), 1.6 (8 points), 1.8 (9 points; 3 per part), and 1.9 (4 points) [M], total 31 points. For Exercise 1.6, you must carry out the minimization algorithm described in Section 1.7 [M]. For exercises 1.8 and 1.9, you only need to provide DFAs.

HW5: Exercises 2.6 (6 points: 2 per part), 2.7 (9 points: 5 for the unambiguous grammar, 3 for the syntax tree, 1 for the fully reduced syntax tree),

HW6: Exercise 2.19 [M]. 1 point for part (a), 5 for part (b), 7 for part (c), 7 for part (d). Total: 20 points.

HW7: Exercise 2.14 [M]. 2 points for part (a), 3 for each of the other parts. Total: 11 points.

HW8: BNFC assignment. 10 points per part. Total: 20 points.

HW9: Exercises 4.0 (2 points), 4.1 (4 points), 4.2 (3 points), 4.3 (4 points), 4.4 (2 points) [R]: total: 15 points.

HW10: Exercises 6.1 (4 points), 6.2 (4 points), 6.3 (4 points) [M]: total: 12 points.