\begin{frame}{Notational Conventions for Grammars}
  \begin{goal}{Notational Conventions}
    When defining grammars, we use the following conventions:
      \item \emph{upper case} letters for \emph{variables} (non-terminals)
      \item \emph{lower case} letters for \emph{terminals}
      \item $V \to w_1 \mid \ldots \mid w_n$ is \emph{shorthand for} $n$ rules
          V &\to w_1\\[-1.5ex]
          V &\to w_n
    Often, we only specify the production rules.

      G_1: \quad S &\to Ab  & G_2:\quad S &\to aSb \\
      A &\to aAb \mid \lambda & S &\to b 
    What languages are generated by these grammars?
      L(G_1) &= \mpause[1]{\{ a^nb^{n+1} \mid n \geq 0 \}} & \mpause[3]{=} &&
      \mpause[2]{ L(G_2) &=} \mpause{\{ a^nb^{n+1} \mid n \geq 0 \}}