Midterm 2

Midterm 2 #

Date: March 30nd, 2021 #

Content #

Midterm 2 will cover everything after February 23 up to (but not including) the March 23 lecture. The following learning modules will be on the exam:

  • Continuations
    • LM 10.1 Differences between tail recursion and continuations (MC)
    • LM 10.2 Similarities between tail recursion and continuations (MC)
    • LM 10.4 Continuation with abort capability (Code)
  • Interpreters
    • LM 5.3 Differences between Procedures and Functions (MC)
    • LM 5.4 Closure Environments, why they are needed (MC)
  • Type Classes
    • LM 11.2 Implement Functor type class (Code)
    • LM 11.3 Implement Applicative type class (Code)
    • LM 11.4 Implement Monad type class (Code)
  • Grammars
    • LM 12.2 Demonstrate that a grammar is ambiguous (fill in the blank)
    • LM 12.4 Derive FIRST and FOLLOW sets for a grammar (Checkbox)
  • Regular Languages
    • LM 13.1 Given a regular expression, select an equivalent right linear grammar (MC)
    • LM 13.3 Select a scenario in which a regular language would be adequate (MC)
  • LL Parsing
    • LM 14.1 Given an LL grammar, give a corresponding parser in Haskell (code)
    • LM 14.2 Convert a grammar into LL form. (text entry)
  • LR Parsing
    • LM 15.1 Identify location of a shift/reduce conflict. (Checkbox)
    • LM 15.2 Identify the significance of a shift/reduce conflict (MC)
    • LM 15.3 Produce the item sets from a grammar. (text entry)