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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |