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 “blow away” the regular expression matchers |
128 with my simple rainy-afternoon matcher and potentially “blow away” 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 |