slides/slides02.tex
changeset 778 3e5f5d19f514
parent 777 a10430cb797c
child 782 a26a20acd1c2
equal deleted inserted replaced
777:a10430cb797c 778:3e5f5d19f514
   864 \end{center}
   864 \end{center}
   865 
   865 
   866 \end{frame}
   866 \end{frame}
   867 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   867 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   868 
   868 
       
   869 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   870 \begin{frame}[t]
       
   871 \frametitle{Brzozowski: \boldmath$a^{?\{n\}} \cdot a^{\{n\}}$}
       
   872 
       
   873 \begin{center}
       
   874 \begin{tikzpicture}
       
   875 \begin{axis}[
       
   876     xlabel={$n$},
       
   877     x label style={at={(1.05,0.0)}},     
       
   878     ylabel={time in secs},
       
   879     enlargelimits=false,
       
   880     xtick={0,5000,...,10000},
       
   881     xmax=11000,
       
   882     ymax=35,
       
   883     ytick={0,5,...,30},
       
   884     scaled ticks=false,
       
   885     axis lines=left,
       
   886     width=9cm,
       
   887     height=7cm,
       
   888     legend entries={Scala V2,Scala V3,Rust},  
       
   889     legend pos=north east
       
   890 ]
       
   891 \addplot[green,mark=square*,mark options={fill=white}] table {re2.data};
       
   892 \addplot[black,mark=square*,mark options={fill=white}] table {re3.data};
       
   893 \addplot[pink,mark=triangle,mark options={fill=pink}] table {re-rust.data};
       
   894 \end{axis}
       
   895 \end{tikzpicture}
       
   896 \end{center}
       
   897 
       
   898 \end{frame}
       
   899 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   900 
   869 
   901 
   870 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   902 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   871 \begin{frame}[c]
   903 \begin{frame}[c]
   872   \frametitle{Another Example \boldmath$(a^*)^* \cdot b$}
   904   \frametitle{Another Example \boldmath$(a^*)^* \cdot b$}
   873 
   905 
   886     scaled ticks=false,
   918     scaled ticks=false,
   887     axis lines=left,
   919     axis lines=left,
   888     width=9cm,
   920     width=9cm,
   889     height=5.5cm, 
   921     height=5.5cm, 
   890     legend entries={Java 8,Python,JavaScript,Swift,Dart},  
   922     legend entries={Java 8,Python,JavaScript,Swift,Dart},  
   891     legend pos=north west,
   923     legend pos=outer north east,
   892     legend cell align=left]
   924     legend cell align=left]
   893 \addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};
   925 \addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};
   894 \addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
   926 \addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
   895 \addplot[red,mark=*, mark options={fill=white}] table {re-js.data};
   927 \addplot[red,mark=*, mark options={fill=white}] table {re-js.data};
   896 \addplot[magenta,mark=*, mark options={fill=white}] table {re-swift.data};
   928 \addplot[magenta,mark=*, mark options={fill=white}] table {re-swift.data};
  1107 \bl{$nullable(r)$} if and only if \bl{$[] \in L(r)$}
  1139 \bl{$nullable(r)$} if and only if \bl{$[] \in L(r)$}
  1108 \end{center}
  1140 \end{center}
  1109 
  1141 
  1110 \end{frame}
  1142 \end{frame}
  1111 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1143 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1144 
       
  1145 \begin{frame}[c]
       
  1146 \begin{mybox3}{}
       
  1147   der c (r*) def = (der c r) $\cdot$ (r*)\smallskip\\
       
  1148   Why in the example (slide 19) the first step is:
       
  1149   der a ((a $\cdot$ b) + b)* = (der a ((a $\cdot$ b) + b)) $\cdot$ r\smallskip\\
       
  1150   and not\smallskip\\
       
  1151   der a ((a $\cdot$ b) + b) = (der a ((a $\cdot$ b) + b)) ยท (r*)
       
  1152 \end{mybox3}
       
  1153 \end{frame}
       
  1154 
       
  1155 \begin{frame}[c]
       
  1156 \begin{mybox3}{}
       
  1157   Would it be possible to find and go over a few examples from the
       
  1158   Brzozowski Algorithm, as it doesn't seem to be as simple as it
       
  1159   sounds?
       
  1160 \end{mybox3}
       
  1161 \end{frame}
       
  1162 
       
  1163 \begin{frame}[c]
       
  1164 \begin{mybox3}{}
       
  1165   Is it possible to make a visual example of how using simp() function
       
  1166   on a (a*)*.b regular expression reduces its runtime? If not it's
       
  1167   fine. I am just very surprised that it is so efficient.
       
  1168 \end{mybox3}
       
  1169 \end{frame}
       
  1170 
       
  1171 \begin{frame}[c]
       
  1172 \begin{mybox3}{}
       
  1173   Do you think the algorithm can be still improved (made faster)?
       
  1174 \end{mybox3}
       
  1175 \end{frame}
       
  1176 
       
  1177 \begin{frame}[c]
       
  1178 \begin{mybox3}{}
       
  1179   Do the regular expression matchers in Python and Java 8 have more
       
  1180   features than the one implemented in this module? Or is there
       
  1181   another reason for their inefficiency?
       
  1182 \end{mybox3}
       
  1183 \end{frame}
       
  1184 
       
  1185 \begin{frame}[c]
       
  1186 \begin{mybox3}{}
       
  1187   Will we discuss the broader Chomsky hierarchy of languages at some
       
  1188   point?
       
  1189 \end{mybox3}
       
  1190 \end{frame}
       
  1191 
       
  1192 \begin{frame}<1-8>[c]
       
  1193 \end{frame}
  1112 
  1194 
  1113 \end{document}
  1195 \end{document}
  1114 % below are slides for proving.
  1196 % below are slides for proving.
  1115 
  1197 
  1116 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1198 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%