14/80
\begin{frame}{B(ackus) N(aur) F(orm) is a Context-Free Grammar}
  \begin{goal}{}
    The BNF (Backus Naur Form) is often used to define the syntax of programming languages.
    These are context-free grammars! 
  \end{goal}
  
  \begin{example}
    \begin{tabular}{rcl}
    $\langle$stm$\rangle$ & $\to$ & $\langle$var$\rangle$ {\bf :=} $\langle$expr$\rangle$ \\
    $\langle$stm$\rangle$ & $\to$ & $\langle$stm$\rangle$ {\bf ;} $\langle$stm$\rangle$ \\
    $\langle$stm$\rangle$ & $\to$ & {\bf begin} $\langle$stm$\rangle$ {\bf end} \\
    $\langle$stm$\rangle$ & $\to$ & {\bf if}\ $\langle$cond$\rangle$ {\bf then}\ $\langle$stm$\rangle$ {\bf else}\ $\langle$stm$\rangle$ \\
    %$\langle$stm$\rangle$ & $\to$ & {\bf if} $\langle$cond$\rangle$ {\bf then} $\langle$stm$\rangle$  \\
    $\langle$stm$\rangle$ & $\to$ & {\bf while} $\langle$cond$\rangle$ {\bf do} $\langle$stm$\rangle$  \\
    $\langle$cond$\rangle$ & $\to$ & $\cdots$ \\
    $\langle$var$\rangle$ & $\to$ & $\cdots$ \\
    $\langle$expr$\rangle$ & $\to$ & $\cdots$ \\
    $\cdots$ & $\to$ & $\cdots$
    \end{tabular}
  \end{example}
  In BNF, non-terminals (variables) are indicated by \alert{$\langle$} and \alert{$\rangle$}.
\end{frame}