# HG changeset patch # User Christian Urban # Date 1541492333 0 # Node ID 278b8b05f286363fd4755ad7d616a4307f02b633 # Parent 9a35b8e67b83f7a64d3143070bdbd5a83aac8010 updated diff -r 9a35b8e67b83 -r 278b8b05f286 coursework/cw02.pdf Binary file coursework/cw02.pdf has changed diff -r 9a35b8e67b83 -r 278b8b05f286 coursework/cw02.tex --- a/coursework/cw02.tex Tue Nov 06 00:48:53 2018 +0000 +++ b/coursework/cw02.tex Tue Nov 06 08:18:53 2018 +0000 @@ -144,7 +144,7 @@ \end{center} -\noindent Both strings should be sucessfully lexed by the +\noindent Both strings should be successfully lexed by the respective regular expression, that means the lexer returns in both examples a value. diff -r 9a35b8e67b83 -r 278b8b05f286 coursework/cw03.pdf Binary file coursework/cw03.pdf has changed diff -r 9a35b8e67b83 -r 278b8b05f286 coursework/cw04.pdf Binary file coursework/cw04.pdf has changed diff -r 9a35b8e67b83 -r 278b8b05f286 coursework/cw04.tex --- a/coursework/cw04.tex Tue Nov 06 00:48:53 2018 +0000 +++ b/coursework/cw04.tex Tue Nov 06 08:18:53 2018 +0000 @@ -157,7 +157,7 @@ \noindent The intended meaning is to first assign the variable \textit{Id} the value of the first arithmetic expression, test -wether this value is less or equal than the value of the +whether this value is less or equal than the value of the second arithmetic expression. If yes, go through the loop, and at the end increase the value of the loop variable by 1 and start again with the test. If no, leave the loop. For example diff -r 9a35b8e67b83 -r 278b8b05f286 progs/comb1.scala --- a/progs/comb1.scala Tue Nov 06 00:48:53 2018 +0000 +++ b/progs/comb1.scala Tue Nov 06 08:18:53 2018 +0000 @@ -142,7 +142,7 @@ lazy val UCount : Parser[String, Int] = ("1" ~ UCount) ==> { case (x, y) => y + 1 } | - "" ==> { (x) => 0 } + "" ==> { x => 0 } UCount.parse("11111") UCount.parse_all("11111") diff -r 9a35b8e67b83 -r 278b8b05f286 slides/slides06.pdf Binary file slides/slides06.pdf has changed diff -r 9a35b8e67b83 -r 278b8b05f286 slides/slides06.tex --- a/slides/slides06.tex Tue Nov 06 00:48:53 2018 +0000 +++ b/slides/slides06.tex Tue Nov 06 08:18:53 2018 +0000 @@ -110,7 +110,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] - +\frametitle{Parser Combinators} + Atomic parsers, for example \begin{center} @@ -520,7 +521,7 @@ \end{tikzpicture} \end{center} -We have lexer and parser. +We have a lexer and a parser\ldots \end{frame} @@ -529,19 +530,19 @@ \begin{center} \bl{\begin{tabular}{@{}lcl@{}} -\textit{Stmt} & $::=$ & $\texttt{skip}$\\ - & $|$ & \textit{Id}\;\texttt{:=}\;\textit{AExp}\\ - & $|$ & \texttt{if}\; \textit{BExp} \;\texttt{then}\; \textit{Block} \;\texttt{else}\; \textit{Block}\\ - & $|$ & \texttt{while}\; \textit{BExp} \;\texttt{do}\; \textit{Block}\\ +\meta{Stmt} & $::=$ & $\texttt{skip}$\\ + & $|$ & \textit{Id}\;\texttt{:=}\;\meta{AExp}\\ + & $|$ & \texttt{if}\; \meta{BExp} \;\texttt{then}\; \meta{Block} \;\texttt{else}\; \meta{Block}\\ + & $|$ & \texttt{while}\; \meta{BExp} \;\texttt{do}\; \meta{Block}\\ & $|$ & \texttt{read}\;\textit{Id}\\ & $|$ & \texttt{write}\;\textit{Id}\\ & $|$ & \texttt{write}\;\textit{String}\medskip\\ -\textit{Stmts} & $::=$ & \textit{Stmt} \;\texttt{;}\; \textit{Stmts}\\ - & $|$ & \textit{Stmt}\medskip\\ -\textit{Block} & $::=$ & \texttt{\{}\,\textit{Stmts}\,\texttt{\}}\\ - & $|$ & \textit{Stmt}\medskip\\ -\textit{AExp} & $::=$ & \ldots\\ -\textit{BExp} & $::=$ & \ldots\\ +\meta{Stmts} & $::=$ & \meta{Stmt} \;\texttt{;}\; \meta{Stmts}\\ + & $|$ & \meta{Stmt}\medskip\\ +\meta{Block} & $::=$ & \texttt{\{}\,\meta{Stmts}\,\texttt{\}}\\ + & $|$ & \meta{Stmt}\medskip\\ +\meta{AExp} & $::=$ & \ldots\\ +\meta{BExp} & $::=$ & \ldots\\ \end{tabular}} \end{center} \end{frame} @@ -558,9 +559,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mode{ \begin{frame}[c] -\frametitle{\begin{tabular}{c}An Interpreter\end{tabular}} +\frametitle{An Interpreter} \begin{center} \bl{\begin{tabular}{l} @@ -579,13 +579,12 @@ \end{itemize} -\end{frame}} +\end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mode{ \begin{frame}[c] -\frametitle{\begin{tabular}{c}Interpreter\end{tabular}} +\frametitle{An Interpreter} \begin{center} \bl{\begin{tabular}{@{}lcl@{}} @@ -600,12 +599,12 @@ \end{tabular}} \end{center} -\end{frame}} +\end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mode{ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[c] -\frametitle{\begin{tabular}{c}Interpreter (2)\end{tabular}} +\frametitle{An Interpreter (2)} \begin{center} \bl{\begin{tabular}{@{}lcl@{}} @@ -624,7 +623,7 @@ \end{tabular}} \end{center} -\end{frame}} +\end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -673,6 +672,50 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] + \frametitle{Coursework: MkEps} + +\begin{center} +\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} + \bl{$mkeps([c_1 c_2 \ldots c_n])$} & \bl{$\dn$} & $\bl{undefined}$\\ + \bl{$mkeps(r^*)$} & \bl{$\dn$} & $\bl{Stars\,[]}$\\ + \bl{$mkeps(r^{\{n\}})$} & \bl{$\dn$} & $\bl{Stars\,(mkeps(r))^n}$\\ + \bl{$mkeps(r^{\{n..\}})$} & \bl{$\dn$} & $\bl{Stars\,(mkeps(r))^n}$\\ + \bl{$mkeps(r^{\{..n\}})$} & \bl{$\dn$} & $\bl{Stars\,[]}$\\ + \bl{$mkeps(r^{\{n..m\}})$} & \bl{$\dn$} & $\bl{Stars\,(mkeps(r))^n}$\medskip\\ + + \bl{$mkeps(r^+)$} & \bl{$\dn$} & \bl{$mkeps(r^{\{1..\}})$}\\ + \bl{$mkeps(r^?)$} & \bl{$\dn$} & \bl{$mkeps(r^{\{..1\}})$}\\ +\end{tabular} +\end{center} + +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[c] + \frametitle{Coursework: Inj} + +\begin{center} +\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} + \bl{$inj([c_1 c_2 \ldots c_n])\,c\,Empty$} & \bl{$\dn$} & $\bl{Chr\,c}$\\ + \bl{$inj(r^*)\,c\;(Seq\,v\,(Stars\,vs))$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ + \bl{$inj(r^{\{n\}})\,c\;(Seq\,v\,(Stars\,vs))$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ + \bl{$inj(r^{\{n..\}})\,c\;(Seq\,v\,(Stars\,vs))$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ + \bl{$inj(r^{\{..n\}})\,c\;(Seq\,v\,(Stars\,vs))$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ + \bl{$inj(r^{\{n..m\}})\,c\;(Seq\,v\,(Stars\,vs))$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\medskip\\ + + \bl{$inj(r^+)\,c\,v$} & \bl{$\dn$} & \bl{$inj(r^{\{1..\}})\,c\,v$}\\ + \bl{$inj(r^?)\,c\,v$} & \bl{$\dn$} & \bl{$inj(r^{\{..1\}})\,c\,v$}\\ +\end{tabular} +\end{center} + +\end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + \end{document} %%% Local Variables: diff -r 9a35b8e67b83 -r 278b8b05f286 slides/slides08.tex --- a/slides/slides08.tex Tue Nov 06 00:48:53 2018 +0000 +++ b/slides/slides08.tex Tue Nov 06 08:18:53 2018 +0000 @@ -886,48 +886,6 @@ \end{frame}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[c] - \frametitle{Coursework: MkEps} - -\begin{center} -\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} - \bl{$mkeps([c_1 c_2 \ldots c_n])$} & \bl{$\dn$} & $\bl{undefined}$\\ - \bl{$mkeps(r^*)$} & \bl{$\dn$} & $\bl{Stars\,[]}$\\ - \bl{$mkeps(r^{\{n\}})$} & \bl{$\dn$} & $\bl{Stars\,(mkeps(r))^n}$\\ - \bl{$mkeps(r^{\{n..\}})$} & \bl{$\dn$} & $\bl{Stars\,(mkeps(r))^n}$\\ - \bl{$mkeps(r^{\{..n\}})$} & \bl{$\dn$} & $\bl{Stars\,[]}$\\ - \bl{$mkeps(r^{\{n..m\}})$} & \bl{$\dn$} & $\bl{Stars\,(mkeps(r))^n}$\medskip\\ - - \bl{$mkeps(r^+)$} & \bl{$\dn$} & \bl{$mkeps(r^{\{1..\}})$}\\ - \bl{$mkeps(r^?)$} & \bl{$\dn$} & \bl{$mkeps(r^{\{..1\}})$}\\ -\end{tabular} -\end{center} - -\end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[c] - \frametitle{Coursework: Inj} - -\begin{center} -\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} - \bl{$inj([c_1 c_2 \ldots c_n])\,c\,Empty$} & \bl{$\dn$} & $\bl{Chr\,c}$\\ - \bl{$inj(r^*)\,c\;Seq\,v\,(Stars\,vs)$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ - \bl{$inj(r^{\{n\}})\,c\;Seq\,v\,(Stars\,vs)$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ - \bl{$inj(r^{\{n..\}})\,c\;Seq\,v\,(Stars\,vs)$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ - \bl{$inj(r^{\{..n\}})\,c\;Seq\,v\,(Stars\,vs)$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\\ - \bl{$inj(r^{\{n..m\}})\,c\;Seq\,v\,(Stars\,vs)$} & \bl{$\dn$} & $\bl{Stars\,(inj\,r\,c\,v::vs)}$\medskip\\ - - \bl{$inj(r^+)\,c\,v$} & \bl{$\dn$} & \bl{$inj(r^{\{1..\}})\,c\,v$}\\ - \bl{$inj(r^?)\,c\,v$} & \bl{$\dn$} & \bl{$inj(r^{\{..1\}})\,c\,v$}\\ -\end{tabular} -\end{center} - -\end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \end{document}