diff -r cbe1b90ddc96 -r e779f42c6fa8 bsc-projects-12.html --- a/bsc-projects-12.html Wed Sep 12 16:49:06 2012 +0200 +++ b/bsc-projects-12.html Thu Sep 13 00:41:16 2012 +0100 @@ -35,7 +35,7 @@ a short description about your programming skills and Computer Science background in your first email. I will also need your King's username in order to book the project for you. Thanks. -
Description: +
+ Description: Deterministic finite automata have many uses in Computer Science, for example for lexing program code. In order to improve their run-time, automata need to be minimised, that @@ -102,7 +103,8 @@
Description: +
+ Description: Solving the problem of deciding the equivalence of regular expressions can be used to decide a number of problems in automated reasoning. Recently, Andreas Asperti @@ -139,7 +141,8 @@
Description: +
+ Description: Compilers translate high-level programs that humans can read and write into efficient machine code that can be run on a CPU or virtual machine. I recently implemented a very simple compiler for a very simple functional @@ -180,10 +183,12 @@ An interesting twist of this project is to not generate code for a CPU, but for the intermediate language of the LLVM compiler (also described here and - here). + here). If you want to see + what machine code looks like you can compile your C-program using gcc -S.
-Skills: +
+ Skills: This is a project for a student with a deep interest in programming languages and compilers. Since my compiler is implemented in Scala, it would make sense to continue this project in this language. I can be @@ -194,7 +199,8 @@
Description: +
+ Description: This project is similar to [CU3]. The emphasis here, however, is on the implementation and comparison of register spilling algorithms, also often called register allocation algorithms. They are part of any respectable compiler. As said @@ -231,11 +237,13 @@ about register allocation algorithms with further pointers.
-Skills: +
+ Skills: Same skills as [CU3].
Description: One of the more annoying aspects of giving a lecture is to ask a question @@ -287,7 +295,9 @@ The project requires fluency in a web-programming language (for example Javascript, PHP, - Java, Python, Go, Scala, + Java, Python, + Go, + Scala, Ruby) and possibly a cloud application platform (for example Google App Engine or @@ -302,7 +312,8 @@ youtube video.
-Skills: +
+ Skills: In order to provide convenience for the lecturer, this project needs very good web-programming skills. A hacker mentality (see above) is probably very beneficial: web-programming is an area that only emerged recently and @@ -311,12 +322,15 @@
Description: There are many algorithms for synchronising clocks. This paper describes a new algorithm for clocks that communicate by exchanging messages and thereby reach a state in which (within some bound) all clocks are synchronised. + A slightly longer and more detailed paper about the algorithm is + here. The point of this project is to implement this algorithm and simulate networks of clocks.
@@ -328,7 +342,8 @@ are given also here. -Skills: +
+ Skills: In order to implement a simulation of a network of clocks, you need to tackle concurrency. You can do this for example in the programming language Scala with the help of the @@ -342,9 +357,10 @@ -
+
+ -Last modified: Wed Jan 11 16:30:03 GMT 2012 +Last modified: Wed Sep 12 16:30:03 GMT 2012 [Validate this page.]