tuned
authorChristian Urban <urbanc@in.tum.de>
Sat, 17 Nov 2012 20:04:29 +0000
changeset 165 89c9fcb211a8
parent 164 d99c0026ebaf
child 166 78e14199b429
tuned
msc-projects-12.html
--- a/msc-projects-12.html	Sat Nov 17 13:56:30 2012 +0000
+++ b/msc-projects-12.html	Sat Nov 17 20:04:29 2012 +0000
@@ -57,8 +57,8 @@
   PPDP'12 conference. The task in this project is to implement the results from this paper.</p>
 
   <p>The background for this project is that some regular expressions are 
-  &quot;<A HREF="http://en.wikipedia.org/wiki/ReDoS#Examples">evil</A>&quot; 
-  and can &quot;stab you in the back&quot; according to
+  &ldquo;<A HREF="http://en.wikipedia.org/wiki/ReDoS#Examples">evil</A>&rdquo;
+  and can &ldquo;stab you in the back&rdquo; according to
   this <A HREF="http://tech.blog.cueup.com/regular-expressions-will-stab-you-in-the-back">blog post</A>.
   For example, if you use in <A HREF="http://www.python.org">Python</A> or 
   in <A HREF="http://www.ruby-lang.org/en/">Ruby</A> (probably also in other mainstream programming languages) the 
@@ -69,7 +69,7 @@
   <A HREF="http://www.dcs.kcl.ac.uk/staff/urbanc/cgi-bin/repos.cgi/afl-material/raw-file/tip/re-internal.rb">re.rb</A> 
   (Ruby version). You can imagine an attacker
   mounting a nice <A HREF="http://en.wikipedia.org/wiki/Denial-of-service_attack">DoS attack</A> against 
-  your program if it contains such an &quot;evil&quot; regular expression. Actually 
+  your program if it contains such an &ldquo;evil&rdquo; regular expression. Actually 
   <A HREF="http://www.scala-lang.org/">Scala</A> (and also Java) are almost immune from such
   attacks as they can deal with strings of up to 4,300 <code>a</code>s in less than a second. But if you scale
   the regular expression and string further to, say, 4,600 <code>a</code>s, then you get a <code>StackOverflowError</code> 
@@ -87,7 +87,7 @@
   <A HREF="http://lambda-the-ultimate.org/node/2293">derivatives of regular expressions</A>.
   These derivatives were introduced in 1964 by <A HREF="http://en.wikipedia.org/wiki/Janusz_Brzozowski_(computer_scientist)">
   Janusz Brzozowski</A>, but according to this 
-  <A HREF="http://www.cl.cam.ac.uk/~so294/documents/jfp09.pdf">paper</A> had been lost in the &quot;sands of time&quot;.
+  <A HREF="http://www.cl.cam.ac.uk/~so294/documents/jfp09.pdf">paper</A> had been lost in the &ldquo;sands of time&rdquo;.
   The advantage of derivatives is that they side-step completely the usual 
   <A HREF="http://hackingoff.com/compilers/regular-expression-to-nfa-dfa">translations</A> of regular expressions
   into NFAs or DFAs, which can introduce the exponential behaviour exhibited by the regular
@@ -106,7 +106,7 @@
   I used them once myself in a <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/Publications/rexp.pdf">paper</A> 
   in order to prove the <A HREF="http://en.wikipedia.org/wiki/Myhill–Nerode_theorem">Myhill-Nerode theorem</A>.
   So I know they are worth their money. Still, it would be interesting to actually compare their results
-  with my simple rainy-afternoon matcher and potentially &quot;blow away&quot; the regular expression matchers 
+  with my simple rainy-afternoon matcher and potentially &ldquo;blow away&rdquo; the regular expression matchers 
   in Python and Ruby (and possibly in Scala too).
   </p>
 
@@ -124,7 +124,7 @@
   <A HREF="https://www.coursera.org/course/automata">Coursera</A>, though IMHO not 
   done with love. 
   Finally, there are millions of other pointers about regular expression
-  matching on the Net. Test cases for &quot;<A HREF="http://en.wikipedia.org/wiki/ReDoS#Examples">evil</A>&quot;
+  matching on the Net. Test cases for &ldquo;<A HREF="http://en.wikipedia.org/wiki/ReDoS#Examples">evil</A>&rdquo;
   regular expressions can be obtained from <A HREF="http://en.wikipedia.org/wiki/ReDoS#Examples">here</A>.
   </p>
 
@@ -183,7 +183,7 @@
   <B>Skills:</B> 
   This is a project for a student with very good programming 
   and <A HREF="http://en.wikipedia.org/wiki/Hacker_(programmer_subculture)">hacking</A> skills. 
-  Some knowledge in JavaScript, HTML and CSS cannot hurt The algorithms from automata
+  Some knowledge in JavaScript, HTML and CSS cannot hurt. The algorithms from automata
   theory are fairly standard material.
   </p>
 
@@ -295,7 +295,7 @@
   This project is similar to [CU3]. The emphasis here, however, is on the
   implementation and comparison of register spilling algorithms, also often called register allocation 
   algorithms. They are part of any respectable compiler.  As said
-  in [CU3], however, my simple compiler lacks them and assumes an infinite amount of registers instead.
+  in [CU3] my simple compiler lacks them and assumes an infinite amount of registers instead.
   Real CPUs however only provide a fixed amount of registers (for example
   x86-64 has 16 general purpose registers). Whenever a program needs
   to hold more values than registers, the values need to be &ldquo;spilled&rdquo;
@@ -383,9 +383,10 @@
 
   <p>
   However, there is one restriction that makes this project harder than it seems
-  as first sight. The department does not allow large server applications and databases
-  to be run on calcium - the central server in the department. So the problem should be solved with as few resources needed
-  on the &quot;back-end&quot; which collects the votes. 
+  at first sight: The department does not allow large server applications and databases
+  to be run on calcium, which is the central server in the department. So the problem 
+  should be solved with as few resources as possible 
+  on the &ldquo;back-end&rdquo; collecting the votes. 
   </p>
 
   <p>