updated
authorChristian Urban <urbanc@in.tum.de>
Sun, 23 Sep 2018 09:02:52 +0100
changeset 556 40e22ad45744
parent 554 2509c670e3a2
child 557 9ab8a6fc58c0
updated
LINKS
coursework/cw01.pdf
coursework/cw01.tex
coursework/cw02.pdf
coursework/cw02.tex
coursework/cw03.pdf
coursework/cw03.tex
coursework/cw04.pdf
coursework/cw04.tex
coursework/cw05.pdf
coursework/cw05.tex
handouts/ho03.tex
progs/re1.scala
progs/re3.scala
slides.sty
--- 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
 
Binary file coursework/cw01.pdf has changed
--- 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
Binary file coursework/cw02.pdf has changed
--- 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
Binary file coursework/cw03.pdf has changed
--- 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
Binary file coursework/cw04.pdf has changed
--- 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
Binary file coursework/cw05.pdf has changed
--- 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
--- 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}
--- 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))))
+}
--- 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
 
 
 
--- 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}