projects.html
changeset 47 e0d36fd0a8fd
parent 44 790a40046dc8
child 48 04797dfb3198
equal deleted inserted replaced
46:87dc0c744ab2 47:e0d36fd0a8fd
    28     WIDTH="75%" 
    28     WIDTH="75%" 
    29     VALIGN="TOP">
    29     VALIGN="TOP">
    30 
    30 
    31 <H2>2011/12 MSc Individual Projects</H2>
    31 <H2>2011/12 MSc Individual Projects</H2>
    32 <H4>Supervisor: Christian Urban</H4> 
    32 <H4>Supervisor: Christian Urban</H4> 
    33 <H4>Email: @kcl   Office: Strand Building S6.30</H4>
    33 <H4>Email: christian dot urban at kcl dot ac dot uk,  Office: Strand Building S6.30</H4>
    34 <H4>If you are interested in a project, please send me email and we can discuss details.</H4> 
    34 <H4>If you are interested in a project, please send me an email and we can discuss details. Please include
       
    35 a short description about your programming and computer science background in your first email. Thanks.</H4> 
    35 
    36 
    36 <ul class="striped">
    37 <ul class="striped">
    37 <li> <H4>[CU1] Implementing a SAT-Solver in a Functional Programming Language</H4>
    38 <li> <H4>[CU1] Implementing a SAT-Solver in a Functional Programming Language</H4>
    38 
    39 
    39   <p><B>Description:</b>  
    40   <p><B>Description:</b>  
   197   <p>
   198   <p>
   198   <B>Description:</B>
   199   <B>Description:</B>
   199   Lexing and parsing are usually done using automated tools, like 
   200   Lexing and parsing are usually done using automated tools, like 
   200   <A HREF="http://en.wikipedia.org/wiki/Lex_programming_tool">lex</A> and 
   201   <A HREF="http://en.wikipedia.org/wiki/Lex_programming_tool">lex</A> and 
   201   <A HREF="http://en.wikipedia.org/wiki/Yacc">yacc</A>. The problem 
   202   <A HREF="http://en.wikipedia.org/wiki/Yacc">yacc</A>. The problem 
   202   with them is that they "work when they work", but if not, they are
   203   with them is that they "work when they work", but if they do not, then they are
   203   <A HREF="http://en.wikipedia.org/wiki/Black_box">black boxes</A>
   204   <A HREF="http://en.wikipedia.org/wiki/Black_box">black boxes</A>
   204   which are difficult to debug and change. They are really quite 
   205   which are difficult to debug and change. They are really quite 
   205   clumsy, to the point that Might wrote a paper titled 
   206   clumsy to the point that Might and Darais wrote a paper titled 
   206   "<A HREF="http://arxiv.org/pdf/1010.5023v1">Yacc is dead</A>".</p>
   207   "<A HREF="http://arxiv.org/pdf/1010.5023v1">Yacc is dead</A>".</p>
   207  
   208  
   208   <p>
   209   <p>
   209   There is simple algorithm for regular expression matching (that is lexing).
   210   There is a simple algorithm for regular expression matching (that is lexing).
   210   This algorithm was introduced by 
   211   This algorithm was introduced by 
   211   <A HREF="http://en.wikipedia.org/wiki/Janusz_Brzozowski_(computer_scientist)">Brzozowski</A> 
   212   <A HREF="http://en.wikipedia.org/wiki/Janusz_Brzozowski_(computer_scientist)">Brzozowski</A> 
   212   in 1964. It is based on the notion of derivatives of regular expressions and 
   213   in 1964. It is based on the notion of derivatives of regular expressions and 
   213   has proved <A HREF="http://www.cl.cam.ac.uk/~so294/documents/jfp09.pdf">useful</A> 
   214   has proved <A HREF="http://www.cl.cam.ac.uk/~so294/documents/jfp09.pdf">useful</A> 
   214   for practical lexing. Last year the notion of derivatives was extended by 
   215   for practical lexing. Last year the notion of derivatives was extended by 
   237 
   238 
   238   <p>
   239   <p>
   239   <B>Description:</B> 
   240   <B>Description:</B> 
   240   Solving the problem of deciding equivalence of regular expressions can be used
   241   Solving the problem of deciding equivalence of regular expressions can be used
   241   to decide a number of problems in automated reasoning. Therefore one likes to
   242   to decide a number of problems in automated reasoning. Therefore one likes to
   242   have a method for equivalence checking that is as fast as possible. 
   243   have a method for equivalence checking that is as fast as possible. There have
       
   244   been a number of algorithms proposed in the past, but one based on a method
       
   245   by Antimirov and Mosses seems relatively simple and easy to implement.
   243   </p>		      
   246   </p>		      
   244   
   247   
   245   <p>
   248   <p>
   246   <B>Tasks:</B>
   249   <B>Tasks:</B>
   247   The task is to implement the algorithm by Antimirov and Mosses and compare it to
   250   The task is to implement the algorithm by Antimirov and Mosses and compare it to
   248   other methods. Hopefully the algorithm can be tuned to be faster than other
   251   other methods. Hopefully the algorithm can be tuned to be faster than other
   249   methods.
   252   methods. The project can be carried out in almost all programming languages, but
       
   253   as usual functional programming languages such Scala, ML, Haskell have an edge
       
   254   for this kind of problems.
   250   </p>
   255   </p>
   251 
   256 
   252   <p>
   257   <p>
   253   <B>Literature:</B>
   258   <B>Literature:</B>
   254   Central to this project is the paper <A HREF="http://www.dcc.fc.up.pt/~nam/publica/ijcs08.pdf">here</A>.
   259   Central to this project is the paper <A HREF="http://www.dcc.fc.up.pt/~nam/publica/ijcs08.pdf">here</A>.
   255   Other methods have been described, for example, 
   260   Other methods have been described, for example, 
   256   <A HREF="http://www4.informatik.tu-muenchen.de/~krauss/papers/rexp.pdf">here</A>.
   261   <A HREF="http://www4.informatik.tu-muenchen.de/~krauss/papers/rexp.pdf">here</A>.
       
   262   A relatively complicated method, based on automata, is described 
       
   263   <A HREF="http://sardes.inrialpes.fr/~braibant/atbr/">here</A>.
   257   </p>  
   264   </p>  
   258 
   265 
   259 </ul>
   266 </ul>
   260 </TD>
   267 </TD>
   261 </TR>
   268 </TR>
   262 </TABLE>
   269 </TABLE>
   263 
   270 
   264 <P><!-- Created: Tue Mar  4 00:23:25 GMT 1997 -->
   271 <P><!-- Created: Tue Mar  4 00:23:25 GMT 1997 -->
   265 <!-- hhmts start -->
   272 <!-- hhmts start -->
   266 Last modified: Fri Dec  2 03:26:32 GMT 2011
   273 Last modified: Tue Dec  6 08:41:27 GMT 2011
   267 <!-- hhmts end -->
   274 <!-- hhmts end -->
   268 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   275 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   269 </BODY>
   276 </BODY>
   270 </HTML>
   277 </HTML>