projects.html
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--
added initial version of projects
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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>