updated
authorChristian Urban <christian.urban@kcl.ac.uk>
Tue, 31 Aug 2021 11:49:09 +0100
changeset 830 dbf9d710ce65
parent 829 dc3c35673e94
child 831 d499da29894c
updated
handouts/amm-ho.pdf
handouts/amm-ho.tex
handouts/ho01.pdf
handouts/ho01.tex
handouts/notation.pdf
handouts/notation.tex
Binary file handouts/amm-ho.pdf has changed
--- a/handouts/amm-ho.tex	Mon Aug 30 15:50:27 2021 +0100
+++ b/handouts/amm-ho.tex	Tue Aug 31 11:49:09 2021 +0100
@@ -13,14 +13,20 @@
 
 For the coursework in this module you are free to use any programming
 language you like, but I will show you all my code using Scala---I
-hope you have fond memories of Scala from PEP. But as said, you do not
-need to use Scala for your own code.\footnote{Haskell, Rust, Ocaml
-  were other languages that have been used previously in CFL. I
-  recommend to not use Java or C for writing a compiler, but if you
-  insist, feel free.}  I will use the current stable version of
-Scala, which is 2.13.3. If you need a reminder of the Scala handouts
-for PEP have a look
-\hr{http://talisker.nms.kcl.ac.uk/cgi-bin/repos.cgi/pep-material/raw-file/tip/handouts/pep-ho.pdf}\bigskip
+hope you have fond memories of Scala from PEP. If you need a reminder
+of the Scala handouts for PEP have a look
+\hr{http://talisker.nms.kcl.ac.uk/cgi-bin/repos.cgi/pep-material/raw-file/tip/handouts/pep-ho.pdf}
+
+
+But as said, you do not need to use Scala for your own
+code.\footnote{Haskell, Rust, Ocaml were other languages that have
+  been used previously in CFL. I recommend to not use Java or C for
+  writing a compiler, but if you insist, feel free. It has been done
+before.}  I will use the
+current stable version of Scala, which is 2.13.6. For various reasons,
+I am NOT GOING TO USE THE LATEST VERSION OF SCALA 3.0! Please be
+aware of this when you run my code.
+\bigskip
 
 \noindent
 The main difference to the Scala I showed you in PEP is that in CFL
@@ -37,8 +43,8 @@
 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
 $ amm
 Loading...  
-Welcome to the Ammonite Repl 2.2.0 (Scala 2.13.3 Java 9)
-scala> 1 + 2 
+Welcome to the Ammonite Repl 2.3.8 (Scala 2.13.3 Java 9)
+scala> 1 + 2
 res0: Int = 3
 \end{lstlisting} %% $
 
Binary file handouts/ho01.pdf has changed
--- a/handouts/ho01.tex	Mon Aug 30 15:50:27 2021 +0100
+++ b/handouts/ho01.tex	Tue Aug 31 11:49:09 2021 +0100
@@ -42,13 +42,13 @@
 
 
 \begin{document}
-\fnote{\copyright{} Christian Urban, King's College London, 2014, 2015, 2016, 2017, 2018, 2019, 2020}
+\fnote{\copyright{} Christian Urban, King's College London, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021}
 
 \section*{Handout 1}
 
 
 The purpose of a compiler is to transform a program a human can read and
-write into code the machine can run as fast as possible. Developing a
+write into code machines can run as fast as possible. Developing a
 compiler is an old craft going back to 1952 with the first compiler
 written by Grace Hopper.\footnote{Who many years ago was invited on a
 talk show hosted by David Letterman.
@@ -344,7 +344,7 @@
 
 \noindent
 Finally, on 2 July 2019 Cloudflare had a global outage because of a 
-regular expression (they had no outage for the last 6 years).  What
+regular expression (they had no outage for the 6 years before).  What
 happened is nicely explained in the blog:
 
 \begin{center}
@@ -531,7 +531,7 @@
 If you prefer to think in terms of the implementation
 of regular expressions in Scala, the constructors and
 classes relate as follows\footnote{More about Scala is 
-in the handout about \emph{A Crash-Course on Scala}.}
+in the handout about \emph{A Crash-Course on Scala} from PEP.}
 
 \begin{center}
 \begin{tabular}{rcl}
@@ -621,6 +621,8 @@
                      & = & L(r_1 + (r_2 + r_3))
 \end{eqnarray*}
 
+\noindent
+That means both languages are the same.
 The point of the definition of $L$ is that we can use it to
 precisely specify when a string $s$ is matched by a regular
 expression $r$, namely if and only if $s \in L(r)$. In fact we
@@ -715,7 +717,7 @@
 expressions and the notion of derivatives. Earlier versions of
 this theorem used always automata in the proof. Using this
 theorem we can show that regular languages are closed under
-complementation, something which Gasarch in his
+complementation, something which Bill Gasarch in his Computational Complexity
 blog\footnote{\url{http://goo.gl/2R11Fw}} assumed can only be
 shown via automata. So even somebody who has written a 700+-page
 book\footnote{\url{http://goo.gl/fD0eHx}} on regular
Binary file handouts/notation.pdf has changed
--- a/handouts/notation.tex	Mon Aug 30 15:50:27 2021 +0100
+++ b/handouts/notation.tex	Tue Aug 31 11:49:09 2021 +0100
@@ -1,7 +1,7 @@
 \documentclass{article}
 \usepackage{../style}
 \usepackage{../langs}
-
+\usepackage{../graphics}
 
 
 \begin{document}
@@ -232,7 +232,7 @@
 \ldots
 \]
 
-\noindent but using the big union notation is more concise.
+\noindent but using the big union notation is more concise.\medskip
 
 As an aside: While this stuff about sets might all look trivial or
 even needlessly pedantic, \emph{Nature} is never simple. If you want
@@ -253,7 +253,9 @@
 \end{center}
 
 \noindent
-contain actually the same amount of elements. Does this make sense?
+contain actually the same amount of elements. Does this make sense to you?
+If yes, good. If not, then something to learn about.
+
 Though this might all look strange, infinite sets will be a
 topic that is very relevant to the material of this module. It tells
 us what we can compute with a computer (actually an algorithm) and what