slides/slides02.tex
changeset 507 fdbc7d0ec04f
parent 500 c502933be072
child 510 25580bf89ac0
equal deleted inserted replaced
506:12a8f57f68ea 507:fdbc7d0ec04f
   221 \end{frame}
   221 \end{frame}
   222 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   222 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   223 
   223 
   224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   224 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   225 \begin{frame}[c]
   225 \begin{frame}[c]
       
   226 \frametitle{\begin{tabular}{c}The Meaning of a\\[-2mm] 
       
   227   Regular Expression\end{tabular}}
       
   228 
       
   229 \begin{textblock}{15}(1,4)
       
   230  \begin{tabular}{rcl}
       
   231  \bl{$L(\ZERO)$}  & \bl{$\dn$} & \bl{$\{\}$}\\
       
   232  \bl{$L(\ONE)$}     & \bl{$\dn$} & \bl{$\{[]\}$}\\
       
   233  \bl{$L(c)$}            & \bl{$\dn$} & \bl{$\{[c]\}$}\\
       
   234  \bl{$L(r_1 + r_2)$}    & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
       
   235  \bl{$L(r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{$\{ s_1 \,@\, s_2 \;|\; s_1 \in L(r_1) \wedge s_2 \in L(r_2) \}$}\\
       
   236  \bl{$L(r^*)$}           & \bl{$\dn$} & \bl{$(L(r))\star \quad\dn \bigcup_{0 \le n} L(r)^n$}\\
       
   237   \end{tabular}
       
   238 \end{textblock}
       
   239 
       
   240 \begin{textblock}{6}(9,12)\small
       
   241 \bl{$L$} is a function from regular expressions to 
       
   242 sets of strings\\
       
   243 \bl{$L$ : Rexp $\Rightarrow$ Set$[$String$]$}
       
   244 \end{textblock}
       
   245 
       
   246 \end{frame}
       
   247 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   248 
       
   249 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   250 \begin{frame}[c]
       
   251 \frametitle{\begin{tabular}{c}The Specification\\ of Matching\end{tabular}}
       
   252 
       
   253 \begin{bubble}[10cm]
       
   254 \large
       
   255 A regular expression \bl{$r$} matches a string~\bl{$s$} 
       
   256 provided
       
   257 
       
   258 \begin{center}
       
   259 \bl{$s \in L(r)$}\\ 
       
   260 \end{center}
       
   261 \end{bubble}\bigskip\bigskip
       
   262 
       
   263 \ldots and the point of the this lecture is 
       
   264 to decide this problem as fast as possible 
       
   265 (unlike Python, Ruby, Java etc)
       
   266 
       
   267 \end{frame}
       
   268 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   269 
       
   270 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   271 \begin{frame}[c]
   226 \frametitle{Semantic Derivative}
   272 \frametitle{Semantic Derivative}
   227 
   273 
   228 \begin{itemize}
   274 \begin{itemize}
   229 \item The \alert{\bf Semantic Derivative} of a 
   275 \item The \alert{\bf Semantic Derivative} of a 
   230 \underline{language}\\ wrt to a character \bl{$c$}:
   276 \underline{language}\\ wrt to a character \bl{$c$}:
   277 \begin{textblock}{9}(2,0.5)
   323 \begin{textblock}{9}(2,0.5)
   278 \begin{bubble}[9.8cm]
   324 \begin{bubble}[9.8cm]
   279 \lstinputlisting{../progs/app01.scala}
   325 \lstinputlisting{../progs/app01.scala}
   280 \end{bubble}
   326 \end{bubble}
   281 \end{textblock}}  
   327 \end{textblock}}  
   282   
       
   283 \end{frame}
       
   284 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   285 
       
   286 
       
   287 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   288 \begin{frame}[c]
       
   289 \frametitle{\begin{tabular}{c}The Meaning of a\\[-2mm] Regular Expression\end{tabular}}
       
   290 
       
   291 \begin{textblock}{15}(1,4)
       
   292  \begin{tabular}{@ {}rcl}
       
   293  \bl{$L(\ZERO)$}     & \bl{$\dn$} & \bl{$\{\}$}\\
       
   294  \bl{$L(\ONE)$}        & \bl{$\dn$} & \bl{$\{[]\}$}\\
       
   295  \bl{$L(c)$}               & \bl{$\dn$} & \bl{$\{[c]\}$}\\
       
   296  \bl{$L(r_1 + r_2)$}       & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
       
   297  \bl{$L(r_1 \cdot r_2)$}   & \bl{$\dn$} & \bl{$L(r_1) \,@\, L(r_2)$}\\
       
   298  \bl{$L(r^*)$}             & \bl{$\dn$} & \bl{$(L(r))\star$}\\
       
   299  \end{tabular}
       
   300 \end{textblock}
       
   301 
       
   302 \begin{textblock}{6}(9,12)\small
       
   303 \bl{$L$} is a function from regular expressions to 
       
   304 sets of strings\\
       
   305 \bl{$L$ : Rexp $\Rightarrow$ Set$[$String$]$}
       
   306 \end{textblock}
       
   307 
       
   308 \end{frame}
       
   309 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   310 
       
   311 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   312 \begin{frame}[c]
       
   313 
       
   314 \large
       
   315 \begin{center}
       
   316 What is \bl{$L(a^*)$}?
       
   317 \end{center}  
       
   318   
   328   
   319 \end{frame}
   329 \end{frame}
   320 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   330 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   321 
   331 
   322 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   332 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%