\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}