CS 3723-001 Programming Languages
Spring 2002 -- Answers to Mid-term Exam

  1. Will give in class.

  2. Will give in class.

  3. Here is one version of the parser function:

  4. Here is the answer:
    
    Stack (top at right)      Curr    Rest of Input       Action
                              Sym
    --------------------------------------------------------------------------
    $                         id      * ( id + id ) $     shift
    $ id                      *       ( id + id ) $       reduce: F ---> id
    $  F                      *       ( id + id ) $       reduce: T ---> F
    $  T                      *       ( id + id ) $       shift
    $  T  *                   (       id + id ) $         shift
    $  T  *  (                id      + id ) $            shift
    $  T  *  (  id            +       id ) $              reduce: F ---> id
    $  T  *  (  F             +       id ) $              reduce: T ---> F
    $  T  *  (  T             +       id ) $              reduce: E ---> T
    $  T  *  (  E             +       id ) $              shift
    $  T  *  (  E  +          id      ) $                 shift
    $  T  *  (  E  +  id      )       $                   reduce: F ---> id
    $  T  *  (  E  +  F       )       $                   reduce: T ---> F
    $  T  *  (  E  +  T       )       $                   reduce: E ---> E + T
    $  T  *  (  E             )       $                   shift
    $  T  *  (  E  )          $                           reduce: F ---> ( E )
    $  T  *  F                $                           reduce: T ---> T * F
    $  T                      $                           reduce: E ---> T
    $  E                      $                           reduce: S ---> E
    $  S                      $                           accept