| author | Christian Urban <urbanc@in.tum.de> | 
| Thu, 01 Dec 2011 23:36:19 +0000 | |
| changeset 43 | a6c077ba850a | 
| child 44 | 790a40046dc8 | 
| permissions | -rw-r--r-- | 
| 43 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 1 | <?xml version="1.0" encoding="utf-8"?> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 2 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 3 | <HEAD> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 4 | <TITLE>Christian Urban</TITLE> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 5 | <BASE HREF="http://www.inf.kcl.ac.uk/staff/urbanc/"> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 6 | <script type="text/javascript" src="striper.js"></script> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 7 | <link rel="stylesheet" href="nominal.css"> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 8 | </HEAD> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 9 | <BODY TEXT="#000000" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 10 | BGCOLOR="#4169E1" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 11 | LINK="#0000EF" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 12 | VLINK="#51188E" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 13 | ALINK="#FF0000" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 14 |       ONLOAD="striper('ul','striped','li','first,second')">
 | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 15 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 16 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 17 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 18 | <TABLE WIDTH="100%" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 19 | BGCOLOR="#4169E1" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 20 | BORDER="0" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 21 | FRAME="border" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 22 | CELLPADDING="10" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 23 | CELLSPACING="2" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 24 | RULES="all"> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 25 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 26 | <TR> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 27 | <TD BGCOLOR="#FFFFFF" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 28 | WIDTH="75%" | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 29 | VALIGN="TOP"> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 30 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 31 | <H2>2011/12 MSc Individual Projects</H2> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 32 | <H4>Supervisor: Christian Urban</H4> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 33 | <H4>Email: @kcl Office: Strand Building S6.30</H4> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 34 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 35 | <ul class="striped"> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 36 | <li> <H4>[CU1] Implementing a SAT-Solver in a Functional Programming Language</H4> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 37 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 38 | <p><B>Description:</b> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 39 | SAT-solver search for satisfying assignments of boolean formulas. Although this | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 40 | is a computationally hard problem (<A HREF="http://en.wikipedia.org/wiki/NP-complete">NP-complete</A>), | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 41 | modern SAT-solvers routinely solve boolean formulas with 100,000 and more variables. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 42 | Application areas of SAT-solver are manifold: they range from hardware verification to | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 43 | Sudoku solvers. Every 2 years there is a competition of the best SAT-solvers in the world.</p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 44 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 45 | <p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 46 | Most SAT-solvers are written in C. The aim of this project is to design and implement | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 47 | a SAT-solver in a functional programming language (preferably | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 48 | <A HREF="http://en.wikipedia.org/wiki/Standard_ML">ML</A>, but | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 49 | <A HREF="http://haskell.org/haskellwiki/Haskell">Haskell</A>, | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 50 | <A HREF="http://www.scala-lang.org/">Scala</A>, | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 51 | <A HREF="http://caml.inria.fr/">OCaml</A>, ... are also OK). Starting point is | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 52 | the open source SAT-solver MiniSat (available <A HREF="http://minisat.se/Main.html">here</A>). | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 53 | The long-term hope is that your implementation becomes part of the interactive theorem prover | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 54 | <A HREF="http://www.cl.cam.ac.uk/research/hvg/isabelle/">Isabelle</A>.</p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 55 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 56 | <p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 57 | <B>Tasks:</B> Understand MiniSat, design and code a SAT-solver in ML, | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 58 | empirical evaluation and tuning of your code.</p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 59 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 60 | <p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 61 | <B>Literature:</B> A good starting point for reading about SAT-solving is the handbook | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 62 | article in <A HREF="http://www.cs.cornell.edu/gomes/papers/SATSolvers-KR-Handbook.pdf">here</A>. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 63 | MiniSat is explained <A HREF="http://minisat.se/downloads/MiniSat.pdf">here</A> and | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 64 | <A HREF="http://minisat.se/Papers.html">here</A>. The standard reference for ML is | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 65 | <A HREF="http://www.cl.cam.ac.uk/~lp15/MLbook/">here</A> (I can lend you my copy | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 66 | of this book for the duration of the project). The best free implementation of ML is | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 67 | <A HREF="http://www.polyml.org/">PolyML</A>. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 68 | </p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 69 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 70 | <li> <H4>[CU2] A Compiler for System F</H4> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 71 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 72 | <p><b>Description:</b> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 73 | <A HREF="http://en.wikipedia.org/wiki/System_F">System F</A> is a mini programming language, | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 74 | which is often used to study the theory behind programming languages, but is also used as | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 75 | a core-language of functional programming languages (for example | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 76 | <A HREF="http://haskell.org/haskellwiki/Haskell">Haskell</A>). The language is small | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 77 | enough to implement in a reasonable amount of time a compiler to an | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 78 | idealised assembly language (preferably | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 79 | <A HREF="http://en.wikipedia.org/wiki/Typed_assembly_language">TAL</A>) or an abstract machine. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 80 | This has been explained in full detail in a PhD-thesis by Louis-Julien Guillemette | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 81 | (available in English <A HREF="https://papyrus.bib.umontreal.ca/jspui/bitstream/1866/3454/6/Guillemette_Louis-Julien_2009_these.pdf">here</A>). He used <A HREF="http://haskell.org/haskellwiki/Haskell">Haskell</A> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 82 | as his implementation language. Other choices are of course possible. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 83 | </p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 84 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 85 | <p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 86 | <b>Tasks:</b> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 87 | Read the relevant literature and implement the various components of a compiler | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 88 | (parser, intermediate languages, simulator for the idealised assembly language). | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 89 | This project is for a good student with an interest in programming languages, | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 90 | who can also translate abstract ideas into code. If it is too difficult, the project can | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 91 | easily be scaled back to the | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 92 | <A HREF="http://en.wikipedia.org/wiki/Simply_typed_lambda_calculus">simply-typed | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 93 | lambda calculus</A> (which is simpler than | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 94 | System F) or only some components of the compiler are implemented. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 95 | </p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 96 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 97 | <p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 98 | <B>Literature:</B> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 99 | The <A HREF="https://papyrus.bib.umontreal.ca/jspui/bitstream/1866/3454/6/Guillemette_Louis-Julien_2009_these.pdf">PhD-thesis</A> by Louis-Julien Guillemette is required reading. A shorter | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 100 | paper about this subject is available <A HREF="http://www.iro.umontreal.ca/~monnier/icfp08.pdf">here</A>. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 101 | A good starting point for TAL is <A HREF="http://www.cs.cornell.edu/talc/papers/tal-tr.pdf">here</A>. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 102 | There is a lot of literature about compilers | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 103 | (for example <A HREF="http://www.cs.princeton.edu/~appel/papers/cwc.html">this book</A> - | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 104 | I can lend you my copy for the duration of the project). | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 105 | </p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 106 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 107 | <li> <H4>[CU3] Sorting Suffixes</H4> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 108 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 109 | <p><b>Description:</b> Given a string, take all its suffixes, and sort them. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 110 | This is often also called <A HREF="http://en.wikipedia.org/wiki/Suffix_array">suffix | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 111 | array sorting</A>. It sound simple, but there are some difficulties. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 112 | The naive algorithm would generate all (suffix) strings and sort them | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 113 | using a standard sorting algorithm, for example quick-sort. Unfortunately, | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 114 | this algorithm is not optimal (it does not take into account that you sort | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 115 | suffixes) and it also takes an quadratic amount of space, which is a | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 116 | problem if you have to sort strings of several Mega-Bytes or even Giga-Bytes | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 117 | (happens often in biotech DNA information.<p> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 118 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 119 | Aim: the notion of index on a text is central in many methods for text | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 120 | processing and for the management of textual databases. Suffix Arrays is one | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 121 | of these methods based on the sorted list of suffixes of the input text. The | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 122 | project consists in implementing a linear-time sorting algorithm and other | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 123 | elements related to Suffix Array construction and to Burrows-Wheeler text | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 124 | compression. Plan: study of the sorting problem in the literature starting | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 125 | with the reference below. Implementation of the sorting algorithm and the | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 126 | LCP computation to obtain a Suffix Array construction software. Then, using | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 127 | this work, implementation of the algorithms described in the second | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 128 | reference below. Deliverables: report, suffix sorting and associated | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 129 | software and their documentation. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 130 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 131 | References: | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 132 | J. Kärkkäinen and P. Sanders, Simple linear work suffix array construction, in ICALP'03, LNCS 2719, Spinger, 2003, pp. 943--955. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 133 | M. Crochemore, J. Désarménien and D. Perrin, A note on the Burrows-Wheeler transformation, Theoret. Comput. Sci., 2005, to appear. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 134 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 135 | There is a horrendously complicated algorithm for solving these problems. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 136 | Your task would be to understand it, and then implement it. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 137 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 138 | <li> <H5>[CU 4] Simplification modulo Equivalences in Isabelle</H5> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 139 | In this project you have to extend the simplifier of the Isabelle theorem | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 140 | prover. Currently, the simplifier only rewrites terms according to equalities | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 141 | l = r. Provided ~ is an equivalence relation, the simplifier should also | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 142 | be able to rewrite terms according to equivalences of the form l ~ r. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 143 | This project requires knowledge of the functional programming language ML. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 144 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 145 | <li><h5>[CU 5] Parsing with Derivatives</h5> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 146 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 147 | Derivatives can be used to implement a regular expression matcher. In | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 148 | this project you have to apply this technique to parsing. The starting | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 149 | point for this project is the paper "Yacc is Dead" by Matthew Might. | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 150 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 151 | <li> <H5>[CU 6] Equivalence Checking of Regular Expression using Antimirov's Method<H5> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 152 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 153 | </ul> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 154 | </TD> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 155 | </TR> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 156 | </TABLE> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 157 | |
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 158 | <P><!-- Created: Tue Mar 4 00:23:25 GMT 1997 --> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 159 | <!-- hhmts start --> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 160 | Last modified: Thu Dec 1 18:10:37 GMT 2011 | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 161 | <!-- hhmts end --> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 162 | <a href="http://validator.w3.org/check/referer">[Validate this page.]</a> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 163 | </BODY> | 
| 
a6c077ba850a
added initial version of projects
 Christian Urban <urbanc@in.tum.de> parents: diff
changeset | 164 | </HTML> |