# HG changeset patch # User Christian Urban # Date 1597682557 -3600 # Node ID 99c5916d9a8f2e31272147bc98ed073def39024e # Parent 6acabeecdf75290ddc289e85426a49f8f8eddbc9 updated diff -r 6acabeecdf75 -r 99c5916d9a8f LINKS --- a/LINKS Sat Aug 15 14:18:37 2020 +0100 +++ b/LINKS Mon Aug 17 17:42:37 2020 +0100 @@ -3,6 +3,12 @@ http://aalhour.com/awesome-compilers https://github.com/aalhour/awesome-compilers + +---------------- +Video about Language design + +https://www.reddit.com/r/programming/comments/ians9l/computerphile_from_algol_60_to_pascal_video/ + ---------------- Thinking Forth (Book to read) diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides01.pdf Binary file slides/slides01.pdf has changed diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides01.tex --- a/slides/slides01.tex Sat Aug 15 14:18:37 2020 +0100 +++ b/slides/slides01.tex Mon Aug 17 17:42:37 2020 +0100 @@ -73,6 +73,143 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}<1-11>[c] +\frametitle{The Goal of this Module\ldots} + +\begin{center} + \begin{tikzpicture}[scale=1, + node/.style={ + rectangle,rounded corners=3mm, + very thick,draw=black!50,minimum height=18mm, minimum width=20mm, + top color=white,bottom color=black!20,drop shadow}] + + \node at (3.05, 1.8) {\Large\bf \ldots{} you write a compiler}; + + \node (0) at (-2.3,0) {}; + \node [above=5mm of 0] + {\makebox[0mm]{\footnotesize + \begin{tabular}{@{}l@{}}input\\[-1mm]program\end{tabular}}}; + + \node (A) at (0,0) [node] {}; + \node [below right] at (A.north west) {lexer}; + + \node (B) at (3,0) [node] {}; + \node [below right=1mm] at (B.north west) {\mbox{}\hspace{-1mm}parser}; + + \node (C) at (6,0) [node] {}; + \node [below right] at (C.north west) {\mbox{}\hspace{-1mm}code gen}; + + \node (1) at (8.4,0) {}; + \node [above=5mm of 1] + {\makebox[0mm]{\footnotesize + \begin{tabular}{@{}r@{}}binary\\[-1mm]code\end{tabular}}}; + + \draw [->,line width=4mm] (0) -- (A); + \draw [->,line width=4mm] (A) -- (B); + \draw [->,line width=4mm] (B) -- (C); + \draw [->,line width=4mm] (C) -- (1); + \end{tikzpicture} + \end{center} + +\only<2,3,4>{ +\begin{textblock}{1}(1,2.1) +\begin{bubble}[9.8cm] +\normalsize +lexer input: a string\smallskip\\ +\hspace{5mm}\code{"read(n);"}\medskip\\ +lexer output: a sequence of tokens\smallskip\\ +\hspace{5mm}\code{key(read) lpar id(n) rpar semi} +\end{bubble} +\end{textblock}} + +\only<3,4>{ +\begin{textblock}{1}(6,7.8) +\begin{tabular}{c} +\includegraphics[scale=0.2]{../pics/rosetta.jpg}\\[-2mm] +\footnotesize lexing $\Rightarrow$ recognising words (Stone of Rosetta) +\end{tabular} +\end{textblock}} + +\only<4>{ +\begin{textblock}{1}(0.5,12)\small +\begin{tabular}{l@{}c@{}l} + \pcode{if} & $\;\Rightarrow\;$ & keyword\\ + \pcode{iffoo} & $\;\Rightarrow\;$ & identifier\\ +\end{tabular} +\end{textblock}} + +\only<6>{ +\begin{textblock}{1}(1,1.5) +\begin{bubble}[8.5cm] +\normalsize +parser input: a sequence of tokens\smallskip\\ + +{\small\hspace{5mm}\code{key(read) lpar id(n) rpar semi}}\smallskip\\ + +parser output: an abstract syntax tree\smallskip\\ +\footnotesize +\hspace{2cm}\begin{tikzpicture} + \node {\code{read}} + child {node {\code{lpar}}} + child {node {\code{n}}} + child {node {\code{rpar}}}; +\end{tikzpicture} +\end{bubble} +\end{textblock}} + +\only<8,9>{ +\begin{textblock}{1}(1,1.5) +\begin{bubble}[4cm] +\normalsize +code generation:\smallskip\\ +\hspace{5mm}\code{istore 2}\\ +\hspace{5mm}\code{iload 2}\\ +\hspace{5mm}\code{ldc 10}\\ +\hspace{5mm}\code{isub}\\ +\hspace{5mm}\code{ifeq Label2}\\ +\hspace{5mm}\code{iload 2}\\ +\hspace{5mm}\code{...}\\ +\end{bubble} +\end{textblock}} + +\only<9>{ +\begin{textblock}{6}(8.4,7) +\begin{bubble}[5cm] +\mbox{\begin{tikzpicture}[scale=0.58,rounded corners=0mm] +\begin{axis}[axis x line=bottom, axis y line=left, ylabel=secs, + xlabel=n, + enlargelimits=0.05, + ybar interval=0.7, legend style=small] +\addplot file {interpreted2.data}; +\addplot file {compiled2.data}; +%\legend{interpreted, compiled} +\end{axis} +\end{tikzpicture}} +\end{bubble} +\end{textblock}} + +\only<10>{ +\begin{textblock}{6}(1,3) + \begin{bubble}[11cm] + Compiler explorers, e.g.: \url{https://gcc.godbolt.org} + \begin{tikzpicture}[] + \node (0) at (-2.3,0) {\includegraphics[scale=0.3]{pics/csource.png}}; + \node (1) [right=35mm] at (0) {\includegraphics[scale=0.3]{pics/cassmbl.png}}; + \draw [->,line width=4mm, red] (0) -- (1); + \node (2) [below=20mm] at (0) {\LARGE\bf``source''}; + \node (3) [right=40mm] at (2) {\LARGE\bf``binary''}; + \draw [->,line width=1mm] (2) -- (3); +\end{tikzpicture} +\end{bubble} +\end{textblock}} + + +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Why Study Compilers?} @@ -117,34 +254,13 @@ \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t] - \frametitle{What are Compilers?} - -\begin{center} -\begin{tikzpicture}[] - \node (0) at (-2.3,0) {\includegraphics[scale=0.3]{pics/csource.png}}; - \node (1) [right=35mm] at (0) {\includegraphics[scale=0.3]{pics/cassmbl.png}}; - \draw [->,line width=4mm, red] (0) -- (1); - \node (2) [below=25mm] at (0) {\LARGE\bf``source''}; - \node (3) [right=40mm] at (2) {\LARGE\bf``binary''}; - \draw [->,line width=1mm] (2) -- (3); -\end{tikzpicture} -\end{center} - -\begin{textblock}{12}(1,14.5) -Compiler explorers, e.g.: \url{https://gcc.godbolt.org} -\end{textblock} - -\end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] -\frametitle{\begin{tabular}{c}Why Bother?\\[-2mm] Compilers \& Boeings 777\end{tabular}} +\frametitle{Why Bother with Compilers?} -First flight in 1994. They want to achieve triple redundancy in hardware -faults.\bigskip +\textbf{Boeings 777}: First flight in 1994. They want to achieve +triple redundancy in hardware faults.\bigskip They compile 1 Ada program to\medskip @@ -166,7 +282,7 @@ \frametitle{Why Bother?} \begin{columns}[t] -\begin{column}{.5\textwidth} +\begin{column}{.4\textwidth} Ruby, Python, Java 8\medskip\\ \begin{tikzpicture}\footnotesize \begin{axis}[ @@ -213,7 +329,7 @@ \end{tikzpicture} \end{column} -\begin{column}{.5\textwidth} +\begin{column}{.4\textwidth} Us (after next lecture)\medskip\\ \begin{tikzpicture}\footnotesize \begin{axis}[ @@ -312,125 +428,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] -\frametitle{The Goal of this Module} - -\begin{center} - \begin{tikzpicture}[scale=1, - node/.style={ - rectangle,rounded corners=3mm, - very thick,draw=black!50,minimum height=18mm, minimum width=20mm, - top color=white,bottom color=black!20,drop shadow}] - - \node at (3.05, 1.8) {\Large\bf write a compiler}; - - \node (0) at (-2.3,0) {}; - \node [above=5mm of 0] - {\makebox[0mm]{\footnotesize - \begin{tabular}{@{}l@{}}input\\[-1mm]program\end{tabular}}}; - - \node (A) at (0,0) [node] {}; - \node [below right] at (A.north west) {lexer}; - - \node (B) at (3,0) [node] {}; - \node [below right=1mm] at (B.north west) {\mbox{}\hspace{-1mm}parser}; - - \node (C) at (6,0) [node] {}; - \node [below right] at (C.north west) {\mbox{}\hspace{-1mm}code gen}; - - \node (1) at (8.4,0) {}; - \node [above=5mm of 1] - {\makebox[0mm]{\footnotesize - \begin{tabular}{@{}r@{}}binary\\[-1mm]code\end{tabular}}}; - - \draw [->,line width=4mm] (0) -- (A); - \draw [->,line width=4mm] (A) -- (B); - \draw [->,line width=4mm] (B) -- (C); - \draw [->,line width=4mm] (C) -- (1); - \end{tikzpicture} - \end{center} - -\only<2,3,4>{ -\begin{textblock}{1}(1,2.1) -\begin{bubble}[9.8cm] -\normalsize -lexer input: a string\smallskip\\ -\hspace{5mm}\code{"read(n);"}\medskip\\ -lexer output: a sequence of tokens\smallskip\\ -\hspace{5mm}\code{key(read) lpar id(n) rpar semi} -\end{bubble} -\end{textblock}} - -\only<3,4>{ -\begin{textblock}{1}(6,7.8) -\begin{tabular}{c} -\includegraphics[scale=0.2]{../pics/rosetta.jpg}\\[-2mm] -\footnotesize lexing $\Rightarrow$ recognising words (Stone of Rosetta) -\end{tabular} -\end{textblock}} - -\only<4>{ -\begin{textblock}{1}(0.5,12)\small -\begin{tabular}{l@{}c@{}l} - \pcode{if} & $\;\Rightarrow\;$ & keyword\\ - \pcode{iffoo} & $\;\Rightarrow\;$ & identifier\\ -\end{tabular} -\end{textblock}} - -\only<5>{ -\begin{textblock}{1}(1,1.5) -\begin{bubble}[8.5cm] -\normalsize -parser input: a sequence of tokens\smallskip\\ - -{\small\hspace{5mm}\code{key(read) lpar id(n) rpar semi}}\smallskip\\ - -parser output: an abstract syntax tree\smallskip\\ -\footnotesize -\hspace{2cm}\begin{tikzpicture} - \node {\code{read}} - child {node {\code{lpar}}} - child {node {\code{n}}} - child {node {\code{rpar}}}; -\end{tikzpicture} -\end{bubble} -\end{textblock}} - -\only<6,7>{ -\begin{textblock}{1}(1,1.5) -\begin{bubble}[4cm] -\normalsize -code generator:\smallskip\\ -\hspace{5mm}\code{istore 2}\\ -\hspace{5mm}\code{iload 2}\\ -\hspace{5mm}\code{ldc 10}\\ -\hspace{5mm}\code{isub}\\ -\hspace{5mm}\code{ifeq Label2}\\ -\hspace{5mm}\code{iload 2}\\ -\hspace{5mm}\code{...}\\ -\end{bubble} -\end{textblock}} - -\only<7>{ -\begin{textblock}{6}(8.4,7) -\begin{bubble}[5cm] -\mbox{\begin{tikzpicture}[scale=0.58,rounded corners=0mm] -\begin{axis}[axis x line=bottom, axis y line=left, ylabel=secs, - xlabel=n, - enlargelimits=0.05, - ybar interval=0.7, legend style=small] -\addplot file {interpreted2.data}; -\addplot file {compiled2.data}; -%\legend{interpreted, compiled} -\end{axis} -\end{tikzpicture}} -\end{bubble} -\end{textblock}} - -\end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[c] \frametitle{The Acad.~Subject is Mature} \bigskip diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides06.pdf Binary file slides/slides06.pdf has changed diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides06.tex --- a/slides/slides06.tex Sat Aug 15 14:18:37 2020 +0100 +++ b/slides/slides06.tex Mon Aug 17 17:42:37 2020 +0100 @@ -1,5 +1,5 @@ % !TEX program = xelatex -\documentclass[dvipsnames,14pt,t]{beamer} +\documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer} \usepackage{../slides} \usepackage{../graphics} \usepackage{../langs} @@ -22,19 +22,34 @@ \begin{tabular}{@ {}c@ {}} \\[-3mm] \LARGE Compilers and \\[-2mm] - \LARGE Formal Languages (6)\\[3mm] + \LARGE Formal Languages\\[3mm] \end{tabular}} \normalsize \begin{center} \begin{tabular}{ll} Email: & christian.urban at kcl.ac.uk\\ - Office Hours: & Thursdays 12 -- 14\\ - Location: & N7.07 (North Wing, Bush House)\\ + %Office Hours: & Thursdays 12 -- 14\\ + %Location: & N7.07 (North Wing, Bush House)\\ Slides \& Progs: & KEATS (also homework is there)\\ \end{tabular} \end{center} + \begin{center} + \begin{tikzpicture} + \node[drop shadow,fill=white,inner sep=0pt] + {\footnotesize\rowcolors{1}{capri!10}{white} + \begin{tabular}{|p{4.8cm}|p{4.8cm}|}\hline + 1 Introduction, Languages & \cellcolor{blue!50} 6 While-Language \\ + 2 Regular Expressions, Derivatives & 7 Compilation, JVM \\ + 3 Automata, Regular Languages & 8 Compiling Functional Languages \\ + 4 Lexing, Tokenising & 9 Optimisations \\ + 5 Grammars, Parsing & 10 LLVM \\ \hline + \end{tabular}% + }; + \end{tikzpicture} + \end{center} + \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -569,7 +584,7 @@ \mode{ \begin{frame}[c] -\mbox{\lstinputlisting[language=while]{../progs/fib.while}} +??%%\mbox{\lstinputlisting[language=while]{../progs/fib.while}} \end{frame}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -649,8 +664,9 @@ \mbox{}\\[-18mm]\mbox{} -{\lstset{language=While}%%\fontsize{10}{12}\selectfont -\texttt{\lstinputlisting{../progs/loops.while}}} +?? +%{\lstset{language=While}%%\fontsize{10}{12}\selectfont +%\texttt{\lstinputlisting{../progs/loops.while}}} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides07.pdf Binary file slides/slides07.pdf has changed diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides07.tex --- a/slides/slides07.tex Sat Aug 15 14:18:37 2020 +0100 +++ b/slides/slides07.tex Mon Aug 17 17:42:37 2020 +0100 @@ -1,5 +1,5 @@ % !TEX program = xelatex -\documentclass[dvipsnames,14pt,t]{beamer} +\documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer} \usepackage{../slides} \usepackage{../langs} \usepackage{../data} @@ -18,19 +18,34 @@ \begin{tabular}{@ {}c@ {}} \\[-3mm] \LARGE Compilers and \\[-2mm] - \LARGE Formal Languages (7)\\[3mm] + \LARGE Formal Languages\\[3mm] \end{tabular}} \normalsize \begin{center} \begin{tabular}{ll} Email: & christian.urban at kcl.ac.uk\\ - Office Hours: & Thursdays 12 -- 14\\ - Location: & N7.07 (North Wing, Bush House)\\ + %Office Hours: & Thursdays 12 -- 14\\ + %Location: & N7.07 (North Wing, Bush House)\\ Slides \& Progs: & KEATS (also homework is there)\\ \end{tabular} \end{center} + \begin{center} + \begin{tikzpicture} + \node[drop shadow,fill=white,inner sep=0pt] + {\footnotesize\rowcolors{1}{capri!10}{white} + \begin{tabular}{|p{4.8cm}|p{4.8cm}|}\hline + 1 Introduction, Languages & 6 While-Language \\ + 2 Regular Expressions, Derivatives & \cellcolor{blue!50} 7 Compilation, JVM \\ + 3 Automata, Regular Languages & 8 Compiling Functional Languages \\ + 4 Lexing, Tokenising & 9 Optimisations \\ + 5 Grammars, Parsing & 10 LLVM \\ \hline + \end{tabular}% + }; + \end{tikzpicture} + \end{center} + \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -139,9 +154,9 @@ \frametitle{\begin{tabular}{c}Fibonacci Numbers\end{tabular}} \mbox{}\\[-18mm]\mbox{} - -{\lstset{language=While}\fontsize{10}{12}\selectfont -\texttt{\lstinputlisting{../progs/fib.while}}} +?? +%{\lstset{language=While}\fontsize{10}{12}\selectfont +%\texttt{\lstinputlisting{../progs/fib.while}}} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -196,8 +211,9 @@ \mbox{}\\[-18mm]\mbox{} -{\lstset{language=While}\fontsize{10}{12}\selectfont -\texttt{\lstinputlisting{../progs/loops.while}}} +?? +%{\lstset{language=While}\fontsize{10}{12}\selectfont +%\texttt{\lstinputlisting{../progs/loops.while}}} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides08.pdf Binary file slides/slides08.pdf has changed diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides08.tex --- a/slides/slides08.tex Sat Aug 15 14:18:37 2020 +0100 +++ b/slides/slides08.tex Mon Aug 17 17:42:37 2020 +0100 @@ -1,6 +1,6 @@ % !TEX program = xelatex -\documentclass[dvipsnames,14pt,t]{beamer} -\usepackage{xcolor} +\documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer} +%%\usepackage{xcolor} \usepackage{../slides} \usepackage{../langs} \usepackage{../data} @@ -32,19 +32,33 @@ \begin{tabular}{@ {}c@ {}} \\[-3mm] \LARGE Compilers and \\[-2mm] - \LARGE Formal Languages (8)\\[3mm] + \LARGE Formal Languages\\[3mm] \end{tabular}} \normalsize \begin{center} \begin{tabular}{ll} Email: & christian.urban at kcl.ac.uk\\ - Office Hours: & Thursdays 12 -- 14\\ - Location: & N7.07 (North Wing, Bush House)\\ + %Office Hours: & Thursdays 12 -- 14\\ + %Location: & N7.07 (North Wing, Bush House)\\ Slides \& Progs: & KEATS (also homework is there)\\ \end{tabular} \end{center} + \begin{center} + \begin{tikzpicture} + \node[drop shadow,fill=white,inner sep=0pt] + {\footnotesize\rowcolors{1}{capri!10}{white} + \begin{tabular}{|p{4.8cm}|p{4.8cm}|}\hline + 1 Introduction, Languages & 6 While-Language \\ + 2 Regular Expressions, Derivatives & 7 Compilation, JVM \\ + 3 Automata, Regular Languages & \cellcolor{blue!50} 8 Compiling Functional Languages \\ + 4 Lexing, Tokenising & 9 Optimisations \\ + 5 Grammars, Parsing & 10 LLVM \\ \hline + \end{tabular}% + }; + \end{tikzpicture} + \end{center} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides09.pdf Binary file slides/slides09.pdf has changed diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides09.tex --- a/slides/slides09.tex Sat Aug 15 14:18:37 2020 +0100 +++ b/slides/slides09.tex Mon Aug 17 17:42:37 2020 +0100 @@ -1,5 +1,5 @@ % !TEX program = xelatex -\documentclass[dvipsnames,14pt,t]{beamer} +\documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer} \usepackage{../slides} \usepackage{../langs} \usepackage{../data} @@ -22,19 +22,33 @@ \begin{tabular}{@ {}c@ {}} \\[-3mm] \LARGE Compilers and \\[-2mm] - \LARGE Formal Languages (9)\\[3mm] + \LARGE Formal Languages\\[3mm] \end{tabular}} \normalsize \begin{center} \begin{tabular}{ll} Email: & christian.urban at kcl.ac.uk\\ - Office Hours: & Thursdays 12 -- 14\\ - Location: & N7.07 (North Wing, Bush House)\\ + %Office Hours: & Thursdays 12 -- 14\\ + %Location: & N7.07 (North Wing, Bush House)\\ Slides \& Progs: & KEATS (also homework is there)\\ \end{tabular} \end{center} + \begin{center} + \begin{tikzpicture} + \node[drop shadow,fill=white,inner sep=0pt] + {\footnotesize\rowcolors{1}{capri!10}{white} + \begin{tabular}{|p{4.8cm}|p{4.8cm}|}\hline + 1 Introduction, Languages & 6 While-Language \\ + 2 Regular Expressions, Derivatives & 7 Compilation, JVM \\ + 3 Automata, Regular Languages & 8 Compiling Functional Languages \\ + 4 Lexing, Tokenising & \cellcolor{blue!50} 9 Optimisations \\ + 5 Grammars, Parsing & 10 LLVM \\ \hline + \end{tabular}% + }; + \end{tikzpicture} + \end{center} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides10.pdf Binary file slides/slides10.pdf has changed diff -r 6acabeecdf75 -r 99c5916d9a8f slides/slides10.tex --- a/slides/slides10.tex Sat Aug 15 14:18:37 2020 +0100 +++ b/slides/slides10.tex Mon Aug 17 17:42:37 2020 +0100 @@ -1,5 +1,5 @@ % !TEX program = xelatex -\documentclass[dvipsnames,14pt,t]{beamer} +\documentclass[dvipsnames,14pt,t,xelatex,aspectratio=169,xcolor={table}]{beamer} \usepackage{../slides} \usepackage{../langs} \usepackage{../data} @@ -45,19 +45,33 @@ \begin{tabular}{@ {}c@ {}} \\[-3mm] \LARGE Compilers and \\[-2mm] - \LARGE Formal Languages (10)\\[3mm] + \LARGE Formal Languages\\[3mm] \end{tabular}} \normalsize \begin{center} \begin{tabular}{ll} Email: & christian.urban at kcl.ac.uk\\ - Office Hours: & Thursdays 12 -- 14\\ - Location: & N7.07 (North Wing, Bush House)\\ + %Office Hours: & Thursdays 12 -- 14\\ + %Location: & N7.07 (North Wing, Bush House)\\ Slides \& Progs: & KEATS (also homework is there)\\ \end{tabular} \end{center} + \begin{center} + \begin{tikzpicture} + \node[drop shadow,fill=white,inner sep=0pt] + {\footnotesize\rowcolors{1}{capri!10}{white} + \begin{tabular}{|p{4.8cm}|p{4.8cm}|}\hline + 1 Introduction, Languages & 6 While-Language \\ + 2 Regular Expressions, Derivatives & 7 Compilation, JVM \\ + 3 Automata, Regular Languages & 8 Compiling Functional Languages \\ + 4 Lexing, Tokenising & 9 Optimisations \\ + 5 Grammars, Parsing & \cellcolor{blue!50}10 LLVM \\ \hline + \end{tabular}% + }; + \end{tikzpicture} + \end{center} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%