bsc-projects-16.html
changeset 465 4dac76eb27d9
parent 459 c27d96cf68a8
equal deleted inserted replaced
464:ae516c20c5f1 465:4dac76eb27d9
     1 <?xml version="1.0" encoding="utf-8"?>
     1 <?xml version="1.0" encoding="utf-8"?>
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     3 <HEAD>
     3 <HEAD>
     4 <TITLE>2016/17 BSc Projects</TITLE>
     4 <TITLE>2016/17 BSc Projects</TITLE>
     5 <BASE HREF="http://www.inf.kcl.ac.uk/staff/urbanc/">
     5 <BASE HREF="http://nms.kcl.ac.uk/christian.urban/">
     6 <script type="text/javascript" src="striper.js"></script>
     6 <script type="text/javascript" src="striper.js"></script>
     7 <link rel="stylesheet" href="nominal.css">
     7 <link rel="stylesheet" href="nominal.css">
     8 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
     8 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
     9 </script>
     9 </script>
    10 </HEAD>
    10 </HEAD>
   120   (for example subexpression matching, which my rainy-afternoon matcher cannot). I am sure they thought
   120   (for example subexpression matching, which my rainy-afternoon matcher cannot). I am sure they thought
   121   about the problem much longer than a single afternoon. The task 
   121   about the problem much longer than a single afternoon. The task 
   122   in this project is to find out how good they actually are by implementing the results from their paper. 
   122   in this project is to find out how good they actually are by implementing the results from their paper. 
   123   Their approach to regular expression matching is also based on the concept of derivatives.
   123   Their approach to regular expression matching is also based on the concept of derivatives.
   124   I used derivatives very successfully once for something completely different in a
   124   I used derivatives very successfully once for something completely different in a
   125   <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/Publications/rexp.pdf">paper</A> 
   125   <A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/rexp.pdf">paper</A> 
   126   about the <A HREF="http://en.wikipedia.org/wiki/Myhill–Nerode_theorem">Myhill-Nerode theorem</A>.
   126   about the <A HREF="http://en.wikipedia.org/wiki/Myhill–Nerode_theorem">Myhill-Nerode theorem</A>.
   127   So I know they are worth their money. Still, it would be interesting to actually compare their results
   127   So I know they are worth their money. Still, it would be interesting to actually compare their results
   128   with my simple rainy-afternoon matcher and potentially &ldquo;blow away&rdquo; the regular expression matchers 
   128   with my simple rainy-afternoon matcher and potentially &ldquo;blow away&rdquo; the regular expression matchers 
   129   in Python, Ruby and Java (and possibly in Scala too). The application would be to implement a fast lexer for
   129   in Python, Ruby and Java (and possibly in Scala too). The application would be to implement a fast lexer for
   130   programming languages. 
   130   programming languages. 
   132 
   132 
   133   <p>
   133   <p>
   134   <B>Literature:</B> 
   134   <B>Literature:</B> 
   135   The place to start with this project is obviously this
   135   The place to start with this project is obviously this
   136   <A HREF="http://www.home.hs-karlsruhe.de/~suma0002/publications/regex-parsing-derivatives.pdf">paper</A>
   136   <A HREF="http://www.home.hs-karlsruhe.de/~suma0002/publications/regex-parsing-derivatives.pdf">paper</A>
   137   and this <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/Publications/posix.pdf">one</A>.
   137   and this <A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/posix.pdf">one</A>.
   138   Traditional methods for regular expression matching are explained
   138   Traditional methods for regular expression matching are explained
   139   in the Wikipedia articles 
   139   in the Wikipedia articles 
   140   <A HREF="http://en.wikipedia.org/wiki/DFA_minimization">here</A> and 
   140   <A HREF="http://en.wikipedia.org/wiki/DFA_minimization">here</A> and 
   141   <A HREF="http://en.wikipedia.org/wiki/Powerset_construction">here</A>.
   141   <A HREF="http://en.wikipedia.org/wiki/Powerset_construction">here</A>.
   142   The authoritative <A HREF="http://infolab.stanford.edu/~ullman/ialc.html">book</A>
   142   The authoritative <A HREF="http://infolab.stanford.edu/~ullman/ialc.html">book</A>
   481   in a "self-3d-printed" watch) to a Raspberry Pi seen in the background. The Arduino in the forground takes meaurements of 
   481   in a "self-3d-printed" watch) to a Raspberry Pi seen in the background. The Arduino in the forground takes meaurements of 
   482   heart rate and body temperature; the Raspberry Pi collects this data and makes it accessible via a simple
   482   heart rate and body temperature; the Raspberry Pi collects this data and makes it accessible via a simple
   483   web-service.
   483   web-service.
   484   <center>
   484   <center>
   485   <img style="-webkit-user-select: none; cursor: -webkit-zoom-in;
   485   <img style="-webkit-user-select: none; cursor: -webkit-zoom-in;
   486   "src="http://www.inf.kcl.ac.uk/staff/urbanc/rpi-photo.jpg" width="209" height="313">
   486   "src="http://nms.kcl.ac.uk/christian.urban/rpi-photo.jpg" width="209" height="313">
   487 
   487 
   488   <img style="-webkit-user-select: none; cursor: -webkit-zoom-in;
   488   <img style="-webkit-user-select: none; cursor: -webkit-zoom-in;
   489   "src="http://www.inf.kcl.ac.uk/staff/urbanc/rpi-watch.jpg" width="450" height="254">
   489   "src="http://nms.kcl.ac.uk/christian.urban/rpi-watch.jpg" width="450" height="254">
   490   </center>
   490   </center>
   491   </p>
   491   </p>
   492 
   492 
   493 <li> <H4>[CU6] An Infrastructure for Displaying and Animating Code in a Web-Browser</H4>
   493 <li> <H4>[CU6] An Infrastructure for Displaying and Animating Code in a Web-Browser</H4>
   494   
   494   
   567  algorithm switched on and it almost caused a catastrophic mission failure (see
   567  algorithm switched on and it almost caused a catastrophic mission failure (see
   568  this youtube video <A HREF="http://www.youtube.com/watch?v=lyx7kARrGeM">here</A>
   568  this youtube video <A HREF="http://www.youtube.com/watch?v=lyx7kARrGeM">here</A>
   569  for an explanation what happened).
   569  for an explanation what happened).
   570  We were able to prove the correctness of this algorithm, but were also able to
   570  We were able to prove the correctness of this algorithm, but were also able to
   571  establish the correctness of some optimisations in this
   571  establish the correctness of some optimisations in this
   572  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/Publications/pip.pdf">paper</A>.
   572  <A HREF="http://nms.kcl.ac.uk/christian.urban/Publications/pip.pdf">paper</A>.
   573  </p>
   573  </p>
   574 
   574 
   575  <p>On a much smaller scale, there are a few small programs and underlying algorithms where it
   575  <p>On a much smaller scale, there are a few small programs and underlying algorithms where it
   576  is not really understood whether they always compute a correct result (for example the
   576  is not really understood whether they always compute a correct result (for example the
   577  regular expression matcher by Sulzmann and Lu in project [CU1]). The aim of this
   577  regular expression matcher by Sulzmann and Lu in project [CU1]). The aim of this
   619 
   619 
   620 
   620 
   621 <li> <H4>Earlier Projects</H4>
   621 <li> <H4>Earlier Projects</H4>
   622 
   622 
   623  I am also open to project suggestions from you. You might find some inspiration from my earlier projects:
   623  I am also open to project suggestions from you. You might find some inspiration from my earlier projects:
   624  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/bsc-projects-12.html">BSc 2012/13</A>, 
   624  <A HREF="http://nms.kcl.ac.uk/christian.urban/bsc-projects-12.html">BSc 2012/13</A>, 
   625  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/msc-projects-12.html">MSc 2012/13</A>, 
   625  <A HREF="http://nms.kcl.ac.uk/christian.urban/msc-projects-12.html">MSc 2012/13</A>, 
   626  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/bsc-projects-13.html">BSc 2013/14</A>,
   626  <A HREF="http://nms.kcl.ac.uk/christian.urban/bsc-projects-13.html">BSc 2013/14</A>,
   627  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/msc-projects-13.html">MSc 2013/14</A>, 
   627  <A HREF="http://nms.kcl.ac.uk/christian.urban/msc-projects-13.html">MSc 2013/14</A>, 
   628  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/bsc-projects-14.html">BSc 2014/15</A>,
   628  <A HREF="http://nms.kcl.ac.uk/christian.urban/bsc-projects-14.html">BSc 2014/15</A>,
   629  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/msc-projects-14.html">MSc 2014/15</A>, 
   629  <A HREF="http://nms.kcl.ac.uk/christian.urban/msc-projects-14.html">MSc 2014/15</A>, 
   630  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/bsc-projects-15.html">BSc 2015/16</A>,
   630  <A HREF="http://nms.kcl.ac.uk/christian.urban/bsc-projects-15.html">BSc 2015/16</A>,
   631  <A HREF="http://www.inf.kcl.ac.uk/staff/urbanc/msc-projects-15.html">MSc 2015/16</A> 
   631  <A HREF="http://nms.kcl.ac.uk/christian.urban/msc-projects-15.html">MSc 2015/16</A> 
   632 </ul>
   632 </ul>
   633 </TD>
   633 </TD>
   634 </TR>
   634 </TR>
   635 </TABLE>
   635 </TABLE>
   636 
   636