# HG changeset patch # User Christian Urban # Date 1537689772 -3600 # Node ID 40e22ad457443a5780e3804d7be4a979b5bc8732 # Parent 2509c670e3a2696fa934887672bcebd4ef4e07d3 updated diff -r 2509c670e3a2 -r 40e22ad45744 LINKS --- a/LINKS Sun Aug 05 21:52:40 2018 +0100 +++ b/LINKS Sun Sep 23 09:02:52 2018 +0100 @@ -3,7 +3,19 @@ http://www.cs.columbia.edu/~sedwards/classes/2017/4115-fall/index.html http://www.cs.dartmouth.edu/~mckeeman/cs48/index.html http://www.cl.cam.ac.uk/teaching/1718/CompConstr/materials.html +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 2509c670e3a2 -r 40e22ad45744 coursework/cw01.pdf Binary file coursework/cw01.pdf has changed diff -r 2509c670e3a2 -r 40e22ad45744 coursework/cw01.tex --- a/coursework/cw01.tex Sun Aug 05 21:52:40 2018 +0100 +++ b/coursework/cw01.tex Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 coursework/cw02.pdf Binary file coursework/cw02.pdf has changed diff -r 2509c670e3a2 -r 40e22ad45744 coursework/cw02.tex --- a/coursework/cw02.tex Sun Aug 05 21:52:40 2018 +0100 +++ b/coursework/cw02.tex Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 coursework/cw03.pdf Binary file coursework/cw03.pdf has changed diff -r 2509c670e3a2 -r 40e22ad45744 coursework/cw03.tex --- a/coursework/cw03.tex Sun Aug 05 21:52:40 2018 +0100 +++ b/coursework/cw03.tex Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 coursework/cw04.pdf Binary file coursework/cw04.pdf has changed diff -r 2509c670e3a2 -r 40e22ad45744 coursework/cw04.tex --- a/coursework/cw04.tex Sun Aug 05 21:52:40 2018 +0100 +++ b/coursework/cw04.tex Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 coursework/cw05.pdf Binary file coursework/cw05.pdf has changed diff -r 2509c670e3a2 -r 40e22ad45744 coursework/cw05.tex --- a/coursework/cw05.tex Sun Aug 05 21:52:40 2018 +0100 +++ b/coursework/cw05.tex Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 handouts/ho03.tex --- a/handouts/ho03.tex Sun Aug 05 21:52:40 2018 +0100 +++ b/handouts/ho03.tex Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 progs/re1.scala --- a/progs/re1.scala Sun Aug 05 21:52:40 2018 +0100 +++ b/progs/re1.scala Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 progs/re3.scala --- a/progs/re3.scala Sun Aug 05 21:52:40 2018 +0100 +++ b/progs/re3.scala Sun Sep 23 09:02:52 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 2509c670e3a2 -r 40e22ad45744 slides.sty --- a/slides.sty Sun Aug 05 21:52:40 2018 +0100 +++ b/slides.sty Sun Sep 23 09:02:52 2018 +0100 @@ -2,6 +2,7 @@ \usepackage{xcolor} \usepackage{fontspec} \usepackage[sc]{mathpazo} +%%\usepackage{CronosPro} \usefonttheme{serif} \defaultfontfeatures{Ligatures=TeX} \defaultfontfeatures{Mapping=tex-text}