Binary file handouts/ho01.pdf has changed
--- a/handouts/ho01.tex Mon Sep 28 23:47:34 2015 +0100
+++ b/handouts/ho01.tex Thu Oct 01 21:22:03 2015 +0100
@@ -272,6 +272,23 @@
A^* \dn \bigcup_{0\le n} A^n
\]
+\noindent
+Note that this expands to
+
+\[
+A^* \dn A^0 \cup A^1 \cup A^2 \cup A^3 \cup A^4 \cup \ldots
+\]
+
+\noindent which is equivalent to
+
+\[
+A^* \dn \{[]\} \cup A \cup A@A \cup A@A@A \cup A@A@A@A \cup \ldots
+\]
+
+\noindent
+Remember that $A^0$ is always the set containing the empty
+string.
+
We will use parentheses to disambiguate regular expressions.
Parentheses are not really part of a regular expression, and
indeed we do not need them in our code because there the tree
Binary file handouts/ho02.pdf has changed
--- a/handouts/ho02.tex Mon Sep 28 23:47:34 2015 +0100
+++ b/handouts/ho02.tex Thu Oct 01 21:22:03 2015 +0100
@@ -78,7 +78,7 @@
can implement an exhaustive test for whether a string is
member of this set or not. In contrast our matching algorithm
will operate on the regular expression $r$ and string $s$,
-only, which are both finite. Before we come to the matching
+only, which are both finite objects. Before we come to the matching
algorithm, however, let us have a closer look at what it means
when two regular expressions are equivalent.
@@ -568,6 +568,8 @@
\end{tikzpicture}
\end{center}
+\section*{Proofs}
+
\end{document}
Binary file slides/slides01.pdf has changed
--- a/slides/slides01.tex Mon Sep 28 23:47:34 2015 +0100
+++ b/slides/slides01.tex Thu Oct 01 21:22:03 2015 +0100
@@ -62,7 +62,7 @@
very thick,draw=black!50,minimum height=18mm, minimum width=20mm,
top color=white,bottom color=black!20}]
- \node at (3.05, 1.8) {\Large\bf A Compiler};
+ \node at (3.05, 1.8) {\Large\bf Write A Compiler};
\node (0) at (-2.3,0) {};