slides/slides01.tex
changeset 762 e70df76926c0
parent 761 82a1315c128d
child 767 bdd12391d345
equal deleted inserted replaced
761:82a1315c128d 762:e70df76926c0
  1051 
  1051 
  1052 %\item The \alert{\bf meaning} of a regular expression is a set of 
  1052 %\item The \alert{\bf meaning} of a regular expression is a set of 
  1053 %  strings, or language.
  1053 %  strings, or language.
  1054 \end{itemize}  
  1054 \end{itemize}  
  1055 
  1055 
  1056 \end{frame}
  1056 \only<2>{
  1057 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1057 \begin{textblock}{4}(10.5,8)
       
  1058 \small
       
  1059 Let
       
  1060 
       
  1061 \bl{$A = \{foo, bar\}$} \bl{$B = \{a, b\}$}
       
  1062 \[
       
  1063 \bl{A \,@\, B = \{fooa, foob, bara, barb\}}
       
  1064 \]
       
  1065 \end{textblock}}  
       
  1066 
       
  1067 \end{frame}
       
  1068 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1069 
       
  1070 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1071 \begin{frame}[c]
       
  1072   \frametitle{Two Corner Cases}
       
  1073    
       
  1074   \Large
       
  1075   \begin{center}
       
  1076   \bl{$A \,@\, \{[]\} = \;?$}\bigskip\bigskip\pause\\
       
  1077   \bl{$A \,@\, \{\} = \;?$}
       
  1078   \end{center}  
       
  1079     
       
  1080   \end{frame}
       
  1081   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
       
  1082   
  1058 
  1083 
  1059 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1084 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1060 \begin{frame}[c]
  1085 \begin{frame}[c]
  1061 \frametitle{The Meaning of a Regex}
  1086 \frametitle{The Meaning of a Regex}
  1062 
  1087 
  1081 
  1106 
  1082 \end{frame}
  1107 \end{frame}
  1083 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1108 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1084 
  1109 
  1085 
  1110 
       
  1111 
       
  1112 
       
  1113 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1114 \begin{frame}[c]
       
  1115   \frametitle{The Power Operation}
       
  1116   
       
  1117   \begin{itemize}
       
  1118   \item The \alert{\textbf{\boldmath$n$th Power}} of a language:
       
  1119   
       
  1120   \begin{center}
       
  1121   \begin{tabular}{lcl}
       
  1122   \bl{$A^0$}    & \bl{$\dn$} & \bl{$\{[]\}$}\\
       
  1123   \bl{$A^{n+1}$} & \bl{$\dn$} & \bl{$A \,@\, A^n$}
       
  1124   \end{tabular}
       
  1125   \end{center}\bigskip
       
  1126   
       
  1127   \item[] For example
       
  1128   
       
  1129   \begin{center}
       
  1130   \begin{tabular}{lcl@{\hspace{10mm}}l}
       
  1131   \bl{$A^4$} & \bl{$=$} & \bl{$A \,@\, A \,@\, A \,@\, A$} & \bl{$(@\,\{[]\})$}\\
       
  1132   \bl{$A^1$} & \bl{$=$} & \bl{$A$} & \bl{$(@\,\{[]\})$}\\
       
  1133   \bl{$A^0$} & \bl{$=$} & \bl{$\{[]\}$}\\
       
  1134   \end{tabular}
       
  1135   \end{center}
       
  1136   
       
  1137   \end{itemize}  
       
  1138   
       
  1139   \end{frame}
       
  1140   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1141   
  1086 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1142 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1087 \begin{frame}[c]
  1143 \begin{frame}[c]
  1088 \frametitle{The Meaning of a Regex}
  1144 \frametitle{The Meaning of a Regex}
  1089 
  1145 
  1090 \begin{textblock}{15}(1,4)
  1146 \begin{textblock}{15}(1,4)
  1092  \bl{$L(\ZERO)$}  & \bl{$\dn$} & \bl{$\{\}$}\\
  1148  \bl{$L(\ZERO)$}  & \bl{$\dn$} & \bl{$\{\}$}\\
  1093  \bl{$L(\ONE)$}     & \bl{$\dn$} & \bl{$\{[]\}$}\\
  1149  \bl{$L(\ONE)$}     & \bl{$\dn$} & \bl{$\{[]\}$}\\
  1094  \bl{$L(c)$}            & \bl{$\dn$} & \bl{$\{[c]\}$}\\
  1150  \bl{$L(c)$}            & \bl{$\dn$} & \bl{$\{[c]\}$}\\
  1095  \bl{$L(r_1 + r_2)$}    & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
  1151  \bl{$L(r_1 + r_2)$}    & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
  1096  \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) \}$}\\
  1152  \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) \}$}\\
  1097  \bl{$L(r^*)$}           & \bl{$\dn$} & \onslide<4->{\bl{$\bigcup_{0 \le n} L(r)^n$}}\\
  1153  \bl{$L(r^*)$}           & \bl{$\dn$} & \onslide<2->{\bl{$\bigcup_{0 \le n} L(r)^n$}}\\
  1098   \end{tabular}\bigskip
  1154   \end{tabular}\bigskip
  1099   
  1155   
  1100 \onslide<2->{
  1156 %\onslide<2->{
  1101 \hspace{5mm}\bl{$L(r)^0 \;\dn\; \{[]\}$}\\
  1157 %\hspace{5mm}\bl{$L(r)^0 \;\dn\; \{[]\}$}\\
  1102 \bl{$L(r)^{n+1} \;\dn\; L(r) \,@\, L(r)^n$}\hspace{9mm}\onslide<3->{\small\textcolor{gray}{(append on sets)}\\
  1158 %\bl{$L(r)^{n+1} \;\dn\; L(r) \,@\, L(r)^n$}\hspace{9mm}\onslide<3->{\small\textcolor{gray}{(append on sets)}\\
  1103 \small\hspace{5cm}\textcolor{gray}{$\{ s_1 @ s_2 \;|\; s_1\in L(r) \wedge s_2 \in L(r)^n \}$}}
  1159 %\small\hspace{5cm}\textcolor{gray}{$\{ s_1 @ s_2 \;|\; s_1\in L(r) \wedge s_2 \in L(r)^n \}$}}
  1104 }  
  1160 %}  
  1105     \end{textblock}
  1161 \end{textblock}
  1106 
  1162 
  1107 \end{frame}
  1163 \end{frame}
  1108 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1164 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1109 
  1165 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1110 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1166 \begin{frame}[c]
  1111 \begin{frame}[c]
  1167   \frametitle{The Star Operation}
  1112 \frametitle{The Meaning of Matching}
       
  1113 
       
  1114 \begin{bubble}[10cm]
       
  1115 \large\bf 
       
  1116 A regular expression \bl{$r$} matches a string~\bl{$s$} 
       
  1117 provided
       
  1118 
       
  1119 \begin{center}
       
  1120 \bl{$s \in L(r)$}\\ 
       
  1121 \end{center}
       
  1122 \end{bubble}\bigskip\bigskip
       
  1123 
       
  1124 \ldots and the point of the next lecture is 
       
  1125 to decide this problem as fast as possible (unlike Python,
       
  1126 Ruby, Java)
       
  1127 
       
  1128 \end{frame}
       
  1129 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1130 
       
  1131 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1132 \begin{frame}[c]
       
  1133   \frametitle{The Power Operation}
       
  1134   
  1168   
  1135   \begin{itemize}
  1169   \begin{itemize}
  1136   \item The \alert{\textbf{\boldmath$n$th Power}} of a language:
  1170   \item The \alert{\bf Kleene Star} of a \underline{language}:
       
  1171   \bigskip
  1137   
  1172   
  1138   \begin{center}
  1173   \begin{center}
  1139   \begin{tabular}{lcl}
  1174   \begin{tabular}{c}
  1140   \bl{$A^0$}    & \bl{$\dn$} & \bl{$\{[]\}$}\\
  1175   \bl{$A\star \dn \bigcup_{0\le n} A^n$}
  1141   \bl{$A^{n+1}$} & \bl{$\dn$} & \bl{$A \,@\, A^n$}
       
  1142   \end{tabular}
  1176   \end{tabular}
  1143   \end{center}\bigskip
  1177   \end{center}\bigskip
  1144   
  1178   
  1145   \item[] For example
  1179   \item[] This expands to 
  1146   
  1180   
  1147   \begin{center}
  1181   \[
  1148   \begin{tabular}{lcl@{\hspace{10mm}}l}
  1182   \bl{A^0 \cup A^1 \cup A^2 \cup A^3 \cup A^4 \cup \ldots}
  1149   \bl{$A^4$} & \bl{$=$} & \bl{$A \,@\, A \,@\, A \,@\, A$} & \bl{$(@\,\{[]\})$}\\
  1183   \]
  1150   \bl{$A^1$} & \bl{$=$} & \bl{$A$} & \bl{$(@\,\{[]\})$}\\
  1184   
  1151   \bl{$A^0$} & \bl{$=$} & \bl{$\{[]\}$}\\
  1185   or
  1152   \end{tabular}
  1186   
  1153   \end{center}
  1187   \small
       
  1188   \[
       
  1189   \bl{\{[]\} \;\cup\; A \;\cup\; A\,@\,A \;\cup\; 
       
  1190     A\,@\,A\,@\,A \;\cup\; A\,@\,A\,@\,A\,@\,A \cup \ldots}
       
  1191   \]
  1154   
  1192   
  1155   \end{itemize}  
  1193   \end{itemize}  
  1156   
  1194   
  1157   \end{frame}
  1195   \end{frame}
  1158 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1196   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1159 
       
  1160 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1161 \begin{frame}[c]
       
  1162   \frametitle{Questions}
       
  1163   
       
  1164   \begin{itemize}
       
  1165   \item Say \bl{$A = \{[a],[b],[c],[d]\}$}.\bigskip
       
  1166   
       
  1167   \item[]
       
  1168   How many strings are in \bl{$A^4$}\,?
       
  1169   \bigskip\medskip\pause
       
  1170   
       
  1171   
       
  1172  \item[]
       
  1173   What if \bl{$A = \{[a],[b],[c],[]\}$};\\ 
       
  1174   how many strings are then in \bl{$A^4$}\,?
       
  1175   \end{itemize}  
       
  1176   
       
  1177 \end{frame}
       
  1178 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
       
  1179 
       
  1180 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1181 \begin{frame}[c]
       
  1182 \frametitle{Languages (Sets of Strings)}
       
  1183 
       
  1184 \begin{itemize}
       
  1185 
       
  1186 \item A \alert{\bf Language} is a set of strings, for example\medskip
       
  1187 \begin{center}
       
  1188 \bl{$\{[], hello, foobar, a, abc\}$}
       
  1189 \end{center}\bigskip
       
  1190 
       
  1191 \item \alert{\bf Concatenation} for strings and languages
       
  1192 
       
  1193 \begin{center}
       
  1194 \begin{tabular}{rcl}
       
  1195 \bl{$foo\;@\;bar$} & \bl{$=$} & \bl{$foobar$}\medskip\\
       
  1196 \bl{$A\;@\;B$}     & \bl{$\dn$} & \bl{$\{ s_1\,@\,s_2 \;\mid\; s_1 \in A \wedge s_2 \in B\}$}
       
  1197 \end{tabular}
       
  1198 \end{center}
       
  1199 \bigskip
       
  1200 
       
  1201 \small
       
  1202 \item [] For example \bl{$A = \{foo, bar\}$}, \bl{$B = \{a, b\}$}
       
  1203 
       
  1204 \[
       
  1205 \bl{A \,@\, B = \{fooa, foob, bara, barb\}}
       
  1206 \]
       
  1207 
       
  1208 \end{itemize}  
       
  1209 \end{frame}
       
  1210 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1211 
       
  1212 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1213 \begin{frame}[c]
       
  1214   \frametitle{Two Corner Cases}
       
  1215    
       
  1216   \Large
       
  1217   \begin{center}
       
  1218   \bl{$A \,@\, \{[]\} = \;?$}\bigskip\bigskip\pause\\
       
  1219   \bl{$A \,@\, \{\} = \;?$}
       
  1220   \end{center}  
       
  1221     
       
  1222   \end{frame}
       
  1223   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
       
  1224   
       
  1225 
       
  1226 
  1197 
  1227 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1198 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1228 \begin{frame}[c]
  1199 \begin{frame}[c]
  1229 \frametitle{The Meaning of a Regex}
  1200 \frametitle{The Meaning of a Regex}
  1230 
  1201 
  1231  ...all the strings a regular expression can match.   
  1202 \begin{textblock}{15}(1,4)
  1232 
       
  1233 \begin{center}
       
  1234  \begin{tabular}{rcl}
  1203  \begin{tabular}{rcl}
  1235  \bl{$L(\ZERO)$}  & \bl{$\dn$} & \bl{$\{\}$}\\
  1204  \bl{$L(\ZERO)$}  & \bl{$\dn$} & \bl{$\{\}$}\\
  1236  \bl{$L(\ONE)$}     & \bl{$\dn$} & \bl{$\{[]\}$}\\
  1205  \bl{$L(\ONE)$}     & \bl{$\dn$} & \bl{$\{[]\}$}\\
  1237  \bl{$L(c)$}            & \bl{$\dn$} & \bl{$\{[c]\}$}\\
  1206  \bl{$L(c)$}            & \bl{$\dn$} & \bl{$\{[c]\}$}\\
  1238  \bl{$L(r_1 + r_2)$}    & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
  1207  \bl{$L(r_1 + r_2)$}    & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
  1239  \bl{$L(r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{$L(r_1) \,@\, L(r_2)$}\\
  1208  \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) \}$}\\
  1240  \bl{$L(r^*)$}           & \bl{$\dn$} & \\
  1209  \bl{$L(r^*)$}           & \bl{$\dn$} & \bl{$(L(r))\star$}\\
  1241   \end{tabular}
  1210   \end{tabular}
       
  1211   
       
  1212 \end{textblock}
       
  1213 
       
  1214 \end{frame}
       
  1215 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1216 
       
  1217 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1218 \begin{frame}[c]
       
  1219 \frametitle{The Meaning of Matching}
       
  1220 
       
  1221 \begin{bubble}[10cm]
       
  1222 \large\bf 
       
  1223 A regular expression \bl{$r$} matches a string~\bl{$s$} 
       
  1224 provided
       
  1225 
       
  1226 \begin{center}
       
  1227 \bl{$s \in L(r)$}\\ 
  1242 \end{center}
  1228 \end{center}
  1243 
  1229 \end{bubble}\bigskip\bigskip
  1244 \begin{textblock}{14}(1.5,13.5)\small
  1230 
  1245 \bl{$L$} is a function from regular expressions to 
  1231 \ldots and the point of the next lecture is 
  1246 sets of strings (languages):\smallskip\\
  1232 to decide this problem as fast as possible (unlike Python,
  1247 \bl{\quad$L$ : Rexp $\Rightarrow$ Set$[$String$]$}
  1233 Ruby, Java)
  1248 \end{textblock}
  1234 
  1249 
  1235 \end{frame}
  1250 \end{frame}
  1236 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%      
  1251 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1237 
  1252 
  1238 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1253 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1239 \begin{frame}[c]
  1254 \begin{frame}[c]
  1240   \frametitle{Questions}
  1255 \frametitle{The Power Operation}
  1241   
  1256 
  1242   \begin{itemize}
  1257 \begin{itemize}
  1243   \item Say \bl{$A = \{[a],[b],[c],[d]\}$}.\bigskip
  1258 \item The \alert{\textbf{\boldmath$n$th Power}} of a language:
  1244   
  1259 
  1245   \item[]
  1260 \begin{center}
  1246   How many strings are in \bl{$A^4$}\,?
  1261 \begin{tabular}{lcl}
  1247   \bigskip\medskip\pause
  1262 \bl{$A^0$}    & \bl{$\dn$} & \bl{$\{[]\}$}\\
  1248   
  1263 \bl{$A^{n+1}$} & \bl{$\dn$} & \bl{$A \,@\, A^n$}
  1249   
  1264 \end{tabular}
  1250  \item[]
  1265 \end{center}\bigskip
  1251   What if \bl{$A = \{[a],[b],[c],[]\}$};\\ 
  1266 
  1252   how many strings are then in \bl{$A^4$}\,?
  1267 \item[] For example
  1253   \end{itemize}  
  1268 
  1254   
  1269 \begin{center}
  1255 \end{frame}
  1270 \begin{tabular}{lcl@{\hspace{10mm}}l}
  1256 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
  1271 \bl{$A^4$} & \bl{$=$} & \bl{$A \,@\, A \,@\, A \,@\, A$} & \bl{$(@\,\{[]\})$}\\
  1257 
  1272 \bl{$A^1$} & \bl{$=$} & \bl{$A$} & \bl{$(@\,\{[]\})$}\\
  1258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1273 \bl{$A^0$} & \bl{$=$} & \bl{$\{[]\}$}\\
  1259 % \begin{frame}[c]
  1274 \end{tabular}
  1260 % \frametitle{Languages (Sets of Strings)}
  1275 \end{center}
  1261 
  1276 
  1262 % \begin{itemize}
  1277 \end{itemize}  
  1263 
  1278 
  1264 % \item A \alert{\bf Language} is a set of strings, for example\medskip
  1279 \end{frame}
  1265 % \begin{center}
       
  1266 % \bl{$\{[], hello, foobar, a, abc\}$}
       
  1267 % \end{center}\bigskip
       
  1268 
       
  1269 % \item \alert{\bf Concatenation} for strings and languages
       
  1270 
       
  1271 % \begin{center}
       
  1272 % \begin{tabular}{rcl}
       
  1273 % \bl{$foo\;@\;bar$} & \bl{$=$} & \bl{$foobar$}\medskip\\
       
  1274 % \bl{$A\;@\;B$}     & \bl{$\dn$} & \bl{$\{ s_1\,@\,s_2 \;\mid\; s_1 \in A \wedge s_2 \in B\}$}
       
  1275 % \end{tabular}
       
  1276 % \end{center}
       
  1277 % \bigskip
       
  1278 
       
  1279 % \small
       
  1280 % \item [] For example \bl{$A = \{foo, bar\}$}, \bl{$B = \{a, b\}$}
       
  1281 
       
  1282 % \[
       
  1283 % \bl{A \,@\, B = \{fooa, foob, bara, barb\}}
       
  1284 % \]
       
  1285 
       
  1286 
       
  1287 
       
  1288 
       
  1289 % \end{itemize}  
       
  1290 % \end{frame}
       
  1291 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1292 
       
  1293 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1294 % \begin{frame}[c]
       
  1295 %   \frametitle{Two Corner Cases}
       
  1296    
       
  1297 %   \Large
       
  1298 %   \begin{center}
       
  1299 %   \bl{$A \,@\, \{[]\} = \;?$}\bigskip\bigskip\pause\\
       
  1300 %   \bl{$A \,@\, \{\} = \;?$}
       
  1301 %   \end{center}  
       
  1302     
       
  1303 %   \end{frame}
       
  1304 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
       
  1305   
       
  1306 
       
  1307 
       
  1308 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1309 % \begin{frame}[c]
       
  1310 % \frametitle{The Meaning of a Regex}
       
  1311 
       
  1312 %  ...all the strings a regular expression can match.   
       
  1313 
       
  1314 % \begin{center}
       
  1315 %  \begin{tabular}{rcl}
       
  1316 %  \bl{$L(\ZERO)$}  & \bl{$\dn$} & \bl{$\{\}$}\\
       
  1317 %  \bl{$L(\ONE)$}     & \bl{$\dn$} & \bl{$\{[]\}$}\\
       
  1318 %  \bl{$L(c)$}            & \bl{$\dn$} & \bl{$\{[c]\}$}\\
       
  1319 %  \bl{$L(r_1 + r_2)$}    & \bl{$\dn$} & \bl{$L(r_1) \cup L(r_2)$}\\
       
  1320 %  \bl{$L(r_1 \cdot r_2)$} & \bl{$\dn$} & \bl{$L(r_1) \,@\, L(r_2)$}\\
       
  1321 %  \bl{$L(r^*)$}           & \bl{$\dn$} & \\
       
  1322 %   \end{tabular}
       
  1323 % \end{center}
       
  1324 
       
  1325 % \begin{textblock}{14}(1.5,13.5)\small
       
  1326 % \bl{$L$} is a function from regular expressions to 
       
  1327 % sets of strings (languages):\smallskip\\
       
  1328 % \bl{\quad$L$ : Rexp $\Rightarrow$ Set$[$String$]$}
       
  1329 % \end{textblock}
       
  1330 
       
  1331 % \end{frame}
       
  1332 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1333 
       
  1334 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
  1335 % \begin{frame}[c]
       
  1336 % \frametitle{The Power Operation}
       
  1337 
       
  1338 % \begin{itemize}
       
  1339 % \item The \alert{\textbf{\boldmath$n$th Power}} of a language:
       
  1340 
       
  1341 % \begin{center}
       
  1342 % \begin{tabular}{lcl}
       
  1343 % \bl{$A^0$}    & \bl{$\dn$} & \bl{$\{[]\}$}\\
       
  1344 % \bl{$A^{n+1}$} & \bl{$\dn$} & \bl{$A \,@\, A^n$}
       
  1345 % \end{tabular}
       
  1346 % \end{center}\bigskip
       
  1347 
       
  1348 % \item[] For example
       
  1349 
       
  1350 % \begin{center}
       
  1351 % \begin{tabular}{lcl@{\hspace{10mm}}l}
       
  1352 % \bl{$A^4$} & \bl{$=$} & \bl{$A \,@\, A \,@\, A \,@\, A$} & \bl{$(@\,\{[]\})$}\\
       
  1353 % \bl{$A^1$} & \bl{$=$} & \bl{$A$} & \bl{$(@\,\{[]\})$}\\
       
  1354 % \bl{$A^0$} & \bl{$=$} & \bl{$\{[]\}$}\\
       
  1355 % \end{tabular}
       
  1356 % \end{center}
       
  1357 
       
  1358 % \end{itemize}  
       
  1359 
       
  1360 % \end{frame}
  1280 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  1361 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
  1281 
  1362 
  1282 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1363 
  1283 \begin{frame}[c]
       
  1284   \frametitle{The Star Operation}
       
  1285   
       
  1286   \begin{itemize}
       
  1287   \item The \alert{\bf Kleene Star} of a \underline{language}:
       
  1288   \bigskip
       
  1289   
       
  1290   \begin{center}
       
  1291   \begin{tabular}{c}
       
  1292   \bl{$A\star \dn \bigcup_{0\le n} A^n$}
       
  1293   \end{tabular}
       
  1294   \end{center}\bigskip
       
  1295   
       
  1296   \item[] This expands to 
       
  1297   
       
  1298   \[
       
  1299   \bl{A^0 \cup A^1 \cup A^2 \cup A^3 \cup A^4 \cup \ldots}
       
  1300   \]
       
  1301   
       
  1302   or
       
  1303   
       
  1304   \small
       
  1305   \[
       
  1306   \bl{\{[]\} \;\cup\; A \;\cup\; A\,@\,A \;\cup\; 
       
  1307     A\,@\,A\,@\,A \;\cup\; A\,@\,A\,@\,A\,@\,A \cup \ldots}
       
  1308   \]
       
  1309   
       
  1310   \end{itemize}  
       
  1311   
       
  1312   \end{frame}
       
  1313   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
  1314   
       
  1315 
  1364 
  1316 
  1365 
  1317 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1366 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1318 \begin{frame}[c]
  1367 % \begin{frame}[c]
  1319 \frametitle{Written Exam}
  1368 % \frametitle{Written Exam}
  1320 
  1369 
  1321 \begin{itemize}
  1370 % \begin{itemize}
  1322 \item Accounts for 80\%.\bigskip
  1371 % \item Accounts for 80\%.\bigskip
  1323 
  1372 
  1324 \item The question ``\textit{Is this relevant for
  1373 % \item The question ``\textit{Is this relevant for
  1325       the exam?}'' is very demotivating for the lecturer!\bigskip\\
  1374 %       the exam?}'' is very demotivating for the lecturer!\bigskip\\
  1326 
  1375 
  1327 \item Deal: Whatever is in the homework (and is not marked
  1376 % \item Deal: Whatever is in the homework (and is not marked
  1328       ``\textit{optional}'') is relevant for the exam.\bigskip
  1377 %       ``\textit{optional}'') is relevant for the exam.\bigskip
  1329       
  1378       
  1330 \item Each lecture has also a handout. There are also handouts about
  1379 % \item Each lecture has also a handout. There are also handouts about
  1331 notation and Scala.      
  1380 % notation and Scala.      
  1332 \end{itemize}
  1381 % \end{itemize}
  1333 
  1382 
  1334 \end{frame}
  1383 % \end{frame}
  1335 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1336 
  1385 
  1337 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1386 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1338 \begin{frame}[t]
  1387 % \begin{frame}[t]
  1339 \frametitle{Coursework}
  1388 % \frametitle{Coursework}
  1340 
  1389 
  1341 \begin{itemize}
  1390 % \begin{itemize}
  1342 \item Accounts for 20\%. Two strands. Choose \alert{\bf one}!\bigskip
  1391 % \item Accounts for 20\%. Two strands. Choose \alert{\bf one}!\bigskip
  1343 \end{itemize}
  1392 % \end{itemize}
  1344 
  1393 
  1345 \begin{columns}[t]
  1394 % \begin{columns}[t]
  1346 \begin{column}{.5\textwidth}
  1395 % \begin{column}{.5\textwidth}
  1347 \underline{\bf Strand 1}\medskip
  1396 % \underline{\bf Strand 1}\medskip
  1348 \begin{itemize}
  1397 % \begin{itemize}
  1349 \item 4 programming tasks:
  1398 % \item 4 programming tasks:
  1350 \begin{itemize}
  1399 % \begin{itemize}
  1351 \item matcher (4\%, 11.10.) 
  1400 % \item matcher (4\%, 11.10.) 
  1352 \item lexer (5\%, 04.11.)
  1401 % \item lexer (5\%, 04.11.)
  1353 \item parser (5\%, 22.11.)
  1402 % \item parser (5\%, 22.11.)
  1354 \item compiler (6\%, 13.12.)
  1403 % \item compiler (6\%, 13.12.)
  1355 \end{itemize}
  1404 % \end{itemize}
  1356 \item in any lang.~you like,\\ but I want to see the\\ code
  1405 % \item in any lang.~you like,\\ but I want to see the\\ code
  1357 \end{itemize}
  1406 % \end{itemize}
  1358 \end{column}
  1407 % \end{column}
  1359 
  1408 
  1360 \hspace{-45pt}\vrule{}\hspace{10pt}
  1409 % \hspace{-45pt}\vrule{}\hspace{10pt}
  1361 \begin{column}{.5\textwidth}
  1410 % \begin{column}{.5\textwidth}
  1362 \underline{\bf Strand 2}\smallskip\begin{itemize}
  1411 % \underline{\bf Strand 2}\smallskip\begin{itemize}
  1363 \item one task: prove the correctness of a regular expression matcher in 
  1412 % \item one task: prove the correctness of a regular expression matcher in 
  1364 the \underline{Isabelle} theorem prover
  1413 % the \underline{Isabelle} theorem prover
  1365 \item 20\%, submission on~13.12.\hspace{-5mm}\mbox{}
  1414 % \item 20\%, submission on~13.12.\hspace{-5mm}\mbox{}
  1366 \end{itemize}
  1415 % \end{itemize}
  1367 \end{column}
  1416 % \end{column}
  1368 \end{columns}\medskip
  1417 % \end{columns}\medskip
  1369 
  1418 
  1370 \small
  1419 % \small
  1371 \begin{itemize}
  1420 % \begin{itemize}
  1372 \item Solving more than one strand will {\bf not} give you more 
  1421 % \item Solving more than one strand will {\bf not} give you more 
  1373 marks.
  1422 % marks.
  1374 
  1423 
  1375 \end{itemize}
  1424 % \end{itemize}
  1376 
  1425 
  1377 \end{frame}
  1426 % \end{frame}
  1378 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1427 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
  1379 
  1428 
  1380 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1429 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1381 %\begin{frame}[c]
  1430 %\begin{frame}[c]
  1382 %\frametitle{Lecture Capture}
  1431 %\frametitle{Lecture Capture}