4/49
\begin{frame}{Context-Free Languages}
  \begin{block}{}
    A grammar $G = (V,T,S,P)$ is called \emph{context-free} if all production rules are of the form
    \begin{talign}
      \alert{A} \to u
    \end{talign}
    where \alert{$A \in V$} and $u \in (V \cup T)^*$.
  \end{block}
  That is, the left-hand side of all rules is a single variable.
  \pause\medskip

  \begin{block}{}
    A language $L$ is \emph{context-free} if there is a context-free grammar with $L = L(G)$.
  \end{block}
  \pause\bigskip
  
  \begin{goal}{}
    Context-free grammars are used to 
    \begin{itemize}
      \item describe the \emph{syntax of programming languages}, and
      \item form the basis of \emph{parsing algorithms}.
    \end{itemize}
  \end{goal}
\end{frame}