Assignment 1 [55 points total]: Due October 3

  1. [15 points total/5 points each] Cooper & Torczon: Exercises for Chapter 1 (p. 725 cf.) -- Exercise 3a, 3b, 3c (at most three sentences/bullets per item)

  2. [25 points total] Cooper & Torczon: Exercises for Chapter 2 (p. 726 cf.)

    1. [5 points each]Section 2.2, Exercise 2a, 2b

    2. [5 points] Section 2.3, Exercise 3c

    3. [15 points/10 for first, 5 for second] Section 2.4, Exercise 1 (only do this for the first two regular expressions, and only minimize the deterministic machine for the second one).  Be sure to label the NFA states and to label each of the DFA states with a set of NFA states.

  3. [10 points total] The regular grammar specifying lexically correct programs for MiniJava is
    Program ::= (Token|Whitespace)*

    1. [5 points] Modify this specification to require that all tokens be separated by whitespace, and optionally allow whitespace at the start and/or end of the program.

    2. [5 points] Do you think this would be a good language design change? Why or why not?  (At most three sentences for the justification.)

  4. [5 points total] Pick one of the compiler-related Turing awards listed in the first lecture slides and give, in at most three sentences, a description of the achievement for which the award was given.  (Do not simply recite the official citation.)

Produce a hard-copy of your answers and turn them in by the start of class on the due date. Do these exercises individually.