# HG changeset patch # User Christian Urban # Date 1382486722 -3600 # Node ID b728c9dbf120e3ff7e89897b0d2d43d84a760a9f # Parent 36eb7bfb0e63ca969051377a4a49316a2136831e add diff -r 36eb7bfb0e63 -r b728c9dbf120 slides/slides05.pdf Binary file slides/slides05.pdf has changed diff -r 36eb7bfb0e63 -r b728c9dbf120 slides/slides05.tex --- a/slides/slides05.tex Wed Oct 23 00:09:41 2013 +0100 +++ b/slides/slides05.tex Wed Oct 23 01:05:22 2013 +0100 @@ -452,6 +452,23 @@ \mode{ \begin{frame}[c] +\begin{tikzpicture}[scale=1] + + \draw[line width=1mm] (-.3, 0) rectangle (1.5,2); + \draw (4.2,1) node {Code Gen}; + \draw (0.6,1.7) node {\footnotesize Parser}; + \draw (-2.7,1.7) node {\footnotesize Lexer}; + + \draw[line width=1mm] (-1.8, 0) rectangle (-3.6,2); + + \draw[white] (1.7,1) node (X) {}; + \draw[white] (3.2,1) node (Y) {}; + \draw[red, ->, line width = 2mm] (X) -- (Y); + + \draw[red, <-, line width = 2mm] (-0.6,1) -- (-1.6,1); + \draw[red, <-, line width = 2mm] (-3.8,1) -- (-4.8,1); +\end{tikzpicture} + \end{frame}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -482,7 +499,48 @@ \end{frame}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\mode{ +\begin{frame}[t] +\frametitle{\begin{tabular}{c}Nullable\end{tabular}} +\small +\ldots{}whether a regular expression can match the empty string: +\begin{center} +\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} +\bl{$nullable(\varnothing)$} & \bl{$\dn$} & \bl{$f\!\/alse$}\\ +\bl{$nullable(\epsilon)$} & \bl{$\dn$} & \bl{$true$}\\ +\bl{$nullable (c)$} & \bl{$\dn$} & \bl{$f\!alse$}\\ +\bl{$nullable (r_1 + r_2)$} & \bl{$\dn$} & \bl{$nullable(r_1) \vee nullable(r_2)$} \\ +\bl{$nullable (r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{$nullable(r_1) \wedge nullable(r_2)$} \\ +\bl{$nullable (r^*)$} & \bl{$\dn$} & \bl{$true$} \\ +\end{tabular} +\end{center} + +\end{frame}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\mode{ +\begin{frame}[c] +\frametitle{\begin{tabular}{c}Zeroable\end{tabular}} + +\small +\ldots{}whether a regular expression can match nothing: +\begin{center} +\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} +\bl{$zeroable(\varnothing)$} & \bl{$\dn$} & \bl{$true$}\\ +\bl{$zeroable(\epsilon)$} & \bl{$\dn$} & \bl{$f\!alse$}\\ +\bl{$zeroable (c)$} & \bl{$\dn$} & \bl{$f\!alse$}\\ +\bl{$zeroable (r_1 + r_2)$} & \bl{$\dn$} & \bl{$zeroable(r_1) \wedge zeroable(r_2)$} \\ +\bl{$zeroable (r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{$zeroable(r_1) \vee zeroable(r_2)$} \\ +\bl{$zeroable (r^*)$} & \bl{$\dn$} & \bl{$f\!alse$} \\ +\end{tabular} +\end{center} + + +\end{frame}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\qq}{\mbox{\texttt{"}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%