# HG changeset patch # User Christian Urban # Date 1537689864 -3600 # Node ID 9ab8a6fc58c0cf570f4c7cf65e6212d4b92ec948 # Parent 40e22ad457443a5780e3804d7be4a979b5bc8732# Parent 9f8066748f60f1c0a208fdc993012934b96fc94c merged diff -r 9f8066748f60 -r 9ab8a6fc58c0 LINKS --- a/LINKS Sun Sep 02 23:27:17 2018 +0100 +++ b/LINKS Sun Sep 23 09:04:24 2018 +0100 @@ -10,7 +10,19 @@ http://spivey.oriel.ox.ac.uk/wiki2/files/compilers/book.pdf http://spivey.oriel.ox.ac.uk/corner/Programming_Languages +http://www.cs.cornell.edu/courses/cs3110/2015fa/index.php#Assignments +Magnus +http://www.cse.chalmers.se/edu/course/TDA283/ +Pfenning +https://www.cs.cmu.edu/~fp/courses/15411-f14/ +https://www.cs.cmu.edu/~fp/courses/15411-f13/lectures/ +https://www.cs.cmu.edu/~fp/courses/15411-f14/lectures/ =============================== +Selfhosting Lisp compiler for Lua + +https://github.com/sctb/lumen +============================ + Pictures from the Starting Forth book diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw01.pdf Binary file coursework/cw01.pdf has changed diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw01.tex --- a/coursework/cw01.tex Sun Sep 02 23:27:17 2018 +0100 +++ b/coursework/cw01.tex Sun Sep 23 09:04:24 2018 +0100 @@ -10,7 +10,7 @@ \section*{Coursework 1 (Strand 1)} -This coursework is worth 4\% and is due on 19 October at +This coursework is worth 4\% and is due on 12 October at 16:00. You are asked to implement a regular expression matcher and submit a document containing the answers for the questions below. You can do the implementation in any programming diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw02.pdf Binary file coursework/cw02.pdf has changed diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw02.tex --- a/coursework/cw02.tex Sun Sep 02 23:27:17 2018 +0100 +++ b/coursework/cw02.tex Sun Sep 23 09:04:24 2018 +0100 @@ -6,7 +6,7 @@ \section*{Coursework 2 (Strand 1)} -\noindent This coursework is worth 5\% and is due on 5 +\noindent This coursework is worth 5\% and is due on 2 November at 16:00. You are asked to implement the Sulzmann \& Lu lexer for the WHILE language. You can do the implementation in any programming language you like, but you diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw03.pdf Binary file coursework/cw03.pdf has changed diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw03.tex --- a/coursework/cw03.tex Sun Sep 02 23:27:17 2018 +0100 +++ b/coursework/cw03.tex Sun Sep 23 09:04:24 2018 +0100 @@ -6,7 +6,7 @@ \section*{Coursework 3} -\noindent This coursework is worth 5\% and is due on 26 +\noindent This coursework is worth 5\% and is due on 23 November at 16:00. You are asked to implement a parser for the WHILE language and also an interpreter. You can do the implementation in any programming language you like, but you diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw04.pdf Binary file coursework/cw04.pdf has changed diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw04.tex --- a/coursework/cw04.tex Sun Sep 02 23:27:17 2018 +0100 +++ b/coursework/cw04.tex Sun Sep 23 09:04:24 2018 +0100 @@ -9,7 +9,7 @@ \section*{Coursework 4 (Strand 1)} -\noindent This coursework is worth 6\% and is due on 16 +\noindent This coursework is worth 6\% and is due on 14 December at 16:00. You are asked to implement a compiler for the WHILE language that targets the assembler language provided by Jasmin or Krakatau (both have very similar diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw05.pdf Binary file coursework/cw05.pdf has changed diff -r 9f8066748f60 -r 9ab8a6fc58c0 coursework/cw05.tex --- a/coursework/cw05.tex Sun Sep 02 23:27:17 2018 +0100 +++ b/coursework/cw05.tex Sun Sep 23 09:04:24 2018 +0100 @@ -6,7 +6,7 @@ \section*{Coursework (Strand 2)} -\noindent This coursework is worth 20\% and is due on 7 December at +\noindent This coursework is worth 20\% and is due on 14 December at 16:00. You are asked to prove the correctness of the regular expression matcher from the lectures using the Isabelle theorem prover. You need to submit a theory file containing this proof. The diff -r 9f8066748f60 -r 9ab8a6fc58c0 handouts/ho03.tex --- a/handouts/ho03.tex Sun Sep 02 23:27:17 2018 +0100 +++ b/handouts/ho03.tex Sun Sep 23 09:04:24 2018 +0100 @@ -292,7 +292,7 @@ \lstinputlisting[numbers=left]{../progs/display/nfa.scala} \caption{A Scala implementation of NFAs using partial functions. Notice that the function \texttt{accepts} implements the - acceptance of a string in a breath-first search fashion. This can be a costly + acceptance of a string in a breadth-first search fashion. This can be a costly way of deciding whether a string is accepted or not in applications that need to handle large NFAs and large inputs.\label{nfa}} \end{figure} diff -r 9f8066748f60 -r 9ab8a6fc58c0 progs/re1.scala --- a/progs/re1.scala Sun Sep 02 23:27:17 2018 +0100 +++ b/progs/re1.scala Sun Sep 23 09:04:24 2018 +0100 @@ -85,6 +85,7 @@ //test: (a?{n}) (a{n}) +println("Test (a?{n}) (a{n})") for (i <- 1 to 20) { println(i + ": " + "%.5f".format(time_needed(2, matches(EVIL1(i), "a" * i)))) } @@ -94,6 +95,8 @@ } //test: (a*)* b +println("Test (a*)* b") + for (i <- 1 to 20) { println(i + " " + "%.5f".format(time_needed(2, matches(EVIL2, "a" * i)))) } @@ -142,3 +145,6 @@ size(ders(("ab" * 200).toList, BIG)) // 366808 +for (i <- 1 to 21) { + println(i + " " + "%.5f".format(time_needed(2, matches(BIG, "ab" * i)))) +} diff -r 9f8066748f60 -r 9ab8a6fc58c0 progs/re3.scala --- a/progs/re3.scala Sun Sep 02 23:27:17 2018 +0100 +++ b/progs/re3.scala Sun Sep 23 09:04:24 2018 +0100 @@ -250,6 +250,12 @@ println(i + ": " + "%.5f".format(time_needed(1, matcher(sulzmann, "ab" * i)))) } +size(ders("".toList, EVIL2)) // 5 +size(ders("a".toList, EVIL2)) // 8 +size(ders("aa".toList, EVIL2)) // 8 +size(ders("aaa".toList, EVIL2)) // 8 +size(ders("aaaa".toList, EVIL2)) // 8 +size(ders("aaaaa".toList, EVIL2)) // 8 diff -r 9f8066748f60 -r 9ab8a6fc58c0 slides.sty --- a/slides.sty Sun Sep 02 23:27:17 2018 +0100 +++ b/slides.sty Sun Sep 23 09:04:24 2018 +0100 @@ -2,6 +2,7 @@ \usepackage{xcolor} \usepackage{fontspec} \usepackage[sc]{mathpazo} +%%\usepackage{CronosPro} \usefonttheme{serif} \defaultfontfeatures{Ligatures=TeX} \defaultfontfeatures{Mapping=tex-text}