--- a/progs/app2.scala Tue Sep 24 01:56:53 2013 +0100
+++ b/progs/app2.scala Tue Sep 24 23:16:00 2013 +0100
@@ -10,7 +10,8 @@
if (n == 0) ()
else {
println(s"Visiting: $n $url")
- for (u <- get_all_URLs(get_page(url))) crawl(u, n - 1)
+ for (u <- get_all_URLs(get_page(url)))
+ crawl(u, n - 1)
}
}
--- a/progs/app3.scala Tue Sep 24 01:56:53 2013 +0100
+++ b/progs/app3.scala Tue Sep 24 23:16:00 2013 +0100
@@ -5,6 +5,7 @@
else if (my_urls.findFirstIn(url) == None) ()
else {
println(s"Visiting: $n $url")
- for (u <- get_all_URLs(get_page(url))) crawl(u, n - 1)
+ for (u <- get_all_URLs(get_page(url)))
+ crawl(u, n - 1)
}
}
--- a/progs/app4.scala Tue Sep 24 01:56:53 2013 +0100
+++ b/progs/app4.scala Tue Sep 24 23:16:00 2013 +0100
@@ -9,6 +9,7 @@
println(s"Visiting: $n $url")
val page = get_page(url)
println(email_pattern.findAllIn(page).mkString("\n"))
- for (u <- get_all_URLs(page)) crawl(u, n - 1)
+ for (u <- get_all_URLs(page))
+ crawl(u, n - 1)
}
}
--- a/slides/beamerthemeplainculight.sty Tue Sep 24 01:56:53 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-%%\Providespackage{beamerthemeplainculight}[2003/11/07 ver 0.93]
-\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-
-% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>.
-%
-% This program can be redistributed and/or modified under the terms
-% of the LaTeX Project Public License Distributed from CTAN
-% archives in directory macros/latex/base/lppl.txt.
-
-\newcommand{\slidecaption}{}
-
-\mode<presentation>
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% comic fonts fonts
-\DeclareFontFamily{T1}{comic}{}%
-\DeclareFontShape{T1}{comic}{m}{n}{<->s*[.9]comic8t}{}%
-\DeclareFontShape{T1}{comic}{m}{it}{<->s*[.9]comic8t}{}%
-\DeclareFontShape{T1}{comic}{m}{sc}{<->s*[.9]comic8t}{}%
-\DeclareFontShape{T1}{comic}{b}{n}{<->s*[.9]comicbd8t}{}%
-\DeclareFontShape{T1}{comic}{b}{it}{<->s*[.9]comicbd8t}{}%
-\DeclareFontShape{T1}{comic}{m}{sl}{<->ssub * comic/m/it}{}%
-\DeclareFontShape{T1}{comic}{b}{sc}{<->sub * comic/m/sc}{}%
-\DeclareFontShape{T1}{comic}{b}{sl}{<->ssub * comic/b/it}{}%
-\DeclareFontShape{T1}{comic}{bx}{n}{<->ssub * comic/b/n}{}%
-\DeclareFontShape{T1}{comic}{bx}{it}{<->ssub * comic/b/it}{}%
-\DeclareFontShape{T1}{comic}{bx}{sc}{<->sub * comic/m/sc}{}%
-\DeclareFontShape{T1}{comic}{bx}{sl}{<->ssub * comic/b/it}{}%
-%
-\renewcommand{\rmdefault}{comic}%
-\renewcommand{\sfdefault}{comic}%
-\renewcommand{\mathfamilydefault}{cmr}% mathfont should be still the old one
-%
-\DeclareMathVersion{bold}% mathfont needs to be bold
-\DeclareSymbolFont{operators}{OT1}{cmr}{b}{n}%
-\SetSymbolFont{operators}{bold}{OT1}{cmr}{b}{n}%
-\DeclareSymbolFont{letters}{OML}{cmm}{b}{it}%
-\SetSymbolFont{letters}{bold}{OML}{cmm}{b}{it}%
-\DeclareSymbolFont{symbols}{OMS}{cmsy}{b}{n}%
-\SetSymbolFont{symbols}{bold}{OMS}{cmsy}{b}{n}%
-\DeclareSymbolFont{largesymbols}{OMX}{cmex}{b}{n}%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Frametitles
-\setbeamerfont{frametitle}{size={\LARGE}}
-\setbeamerfont{frametitle}{family={\usefont{T1}{ptm}{b}{n}}}
-\setbeamercolor{frametitle}{fg=ProcessBlue,bg=white}
-
-\setbeamertemplate{frametitle}{%
-\vskip 2mm % distance from the top margin
-\hskip -3mm % distance from left margin
-\vbox{%
-\begin{minipage}{1.05\textwidth}%
-\centering%
-\insertframetitle%
-\end{minipage}}%
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Foot
-%
-\setbeamertemplate{navigation symbols}{}
-\usefoottemplate{%
-\vbox{%
- \tinyline{%
- \tiny\hfill\textcolor{gray!50}{\slidecaption{} --
- p.~\insertframenumber/\inserttotalframenumber}}}%
-}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\beamertemplateballitem
-\setlength\leftmargini{2mm}
-\setlength\leftmarginii{0.6cm}
-\setlength\leftmarginiii{1.5cm}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% blocks
-%\definecolor{cream}{rgb}{1,1,.65}
-\definecolor{cream}{rgb}{1,1,.8}
-\setbeamerfont{block title}{size=\normalsize}
-\setbeamercolor{block title}{fg=black,bg=cream}
-\setbeamercolor{block body}{fg=black,bg=cream}
-
-\setbeamertemplate{blocks}[rounded][shadow=true]
-
-\setbeamercolor{boxcolor}{fg=black,bg=cream}
-
-\mode
-<all>
-
-
-
-
-
-
Binary file slides/slides01.pdf has changed
--- a/slides/slides01.tex Tue Sep 24 01:56:53 2013 +0100
+++ b/slides/slides01.tex Tue Sep 24 23:16:00 2013 +0100
@@ -76,7 +76,7 @@
showstringspaces=false}
% beamer stuff
-\renewcommand{\slidecaption}{AFL 01, King's College London, 26.~September 2012}
+\renewcommand{\slidecaption}{AFL 01, King's College London, 25.~September 2013}
\begin{document}
@@ -201,7 +201,7 @@
\frametitle{\begin{tabular}{c}This Course\end{tabular}}
\begin{itemize}
-\item the ultimate goal is to implement a small compiler (really small one)\bigskip
+\item the ultimate goal is to implement a small compiler (a really small one for the JVM)\bigskip
\end{itemize}
Let's start with:
@@ -257,19 +257,16 @@
\begin{frame}[c]
\frametitle{\begin{tabular}{c}Scala\end{tabular}}
-\footnotesize a simple Scala function for reading webpages\\[-3mm]
+\small a simple Scala function for reading webpages\\[-3mm]
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{../progs/app0.scala}}}\pause
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinline{get_page("""http://www.inf.kcl.ac.uk/staff/urbanc/""")}}}\pause\bigskip
+{\lstset{language=Scala}\texttt{\lstinputlisting{../progs/app0.scala}}}\pause
+{\lstset{language=Scala}\texttt{\lstinline{get_page("""http://www.inf.kcl.ac.uk/staff/urbanc/""")}}}\pause\bigskip
-\footnotesize slightly more complicated for handling errors properly:\\[-3mm]
+\small slightly more complicated for handling errors properly:\\[-3mm]
-\footnotesize
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{../progs/app1.scala}}}
+\small
+{\lstset{language=Scala}\texttt{\lstinputlisting{../progs/app1.scala}}}
\end{frame}}
@@ -322,11 +319,10 @@
\mode<presentation>{
\begin{frame}[c]
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{../progs/app2.scala}}}\medskip
+\small
+{\lstset{language=Scala}\texttt{\lstinputlisting{../progs/app2.scala}}}\medskip
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{crawl(some\_start\_URL, 2)}}\
+{\lstset{language=Scala}\texttt{crawl(some\_start\_URL, 2)}}\
\end{frame}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -338,8 +334,8 @@
\footnotesize
a version that only ``crawls'' links in my domain:
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{../progs/app3.scala}}}
+\small
+{\lstset{language=Scala}\texttt{\lstinputlisting{../progs/app3.scala}}}
\end{frame}}
@@ -352,8 +348,8 @@
\footnotesize
a little email ``harvester'':
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{../progs/app4.scala}}}\bigskip
+\small
+{\lstset{language=Scala}\texttt{\lstinputlisting{../progs/app4.scala}}}\bigskip
\tiny
\textcolor{gray}{\url{http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/}}
@@ -451,11 +447,11 @@
\begin{itemize}
\item regular expressions / regular expression matching
+\item derivatives
\item automata
-\item the Myhill-Nerode theorem
\item parsing
\item grammars
-\item a small interpreter / web browser
+\item a small interpreter / compiler
\end{itemize}
\end{frame}}