Research Interests

My primary research interest is in programming languages and everything that is related to that: Functional/Object-oriented/Logic programming, static and dynamic type systems, static and dynamic program analyses, compilers, and optimizations.

The topic of my Ph.D. thesis is a static analysis of parallel programs that can be used in optimizing compilers for multithreaded/multicore systems.

Ph.D. Project

Exploiting Task-order Information in Compilers for Shared-memory Parallel Programs

My Ph.D. thesis is available as a PDF in my publications section.

Current compilers are still largely ignorant of the scheduling of parallel tasks at runtime. Without this information, however, they have difficulties optimizing and verifying concurrent programs.

In this project, we research a programming model where the program contains explicit scheduling constraints in the form of happens-before relationships between scheduled tasks. This model allows for flexible and fine-grained ad hoc parallelism while still enabling us to statically extract an abstraction of the runtime schedule. The result of this schedule analysis can answer the question as to whether two tasks execute in sequence, exclusively, or in parallel with each other.

Other Projects

Pepper: Programming in Context Pepper is an extension of Java designed to separate code and data. Unlike Java, Pepper allows controlled violations of encapsulation by permitting the same set of data to be used in multiple contexts --- meaning that the same data may be be accessed through different interfaces for different purposes, in a type-safe fashion.
Quiddity: Morphware for Next-Generation Computing Systems Reconfigurable computing abandons the "one-design-fits-all" philosophy of a traditional microprocessor and instead customizes the hardware to the task at hand, allowing enormous speedups for many problems. Recently, a new technology based on non-volatile magnetoresistive (MR) elements was proposed for reconfigurable computing, which consist of two magnetic layers separated by a non-ferromagnetic spacer; these can be used to form gates which are reprogrammable at runtime, with speeds comparable to ordinary memory access.
Brainchild - the pen-based collaborative editor This project is about exploring the usage of pen-based user interfaces (i.e., tablet PCs) for collaborative work. Please visit the project homepage for more information and downloads.
Peer-Review-System (PRS) The goal of this project is to create a web-based platform for managing and conducting peer-review exercises. Professors or assistants are able to upload exercises, for which the students can then upload their solutions. Peer reviews are a mechanism where a student gets the submission of somebody else for correcting it.
More You can find more of my private projects here.

Teaching

WS2011 Compiler Design
SS2010 Parallel Programming
SS2010 Java and C# in depth (guest lecture on graphical user interfaces)
SS2009 Parallel Programming
SS2008 Java Programming (Languages in Depth series)
SS2007 Computer Architecture and Systems Programming
SS2007 Java Porgamming (Languages in Depth Series)
WS2006/07 Informatik I (D-ITET)
SS2006 0288 Design Patterns for Mobile and Distributed Applications
WS2005/06 251-0845 Informatik I (D-BAUG)

Supervised Master Theses

(The zip file with all (?) the master and semester theses I supervised)

Date Status Student(s) Project
SS2008 Finished Samuel Riedmann Java with Object States
SS2008 Finished Simon Reinhard Mapping Finite State Machine Specifications to MRAM-based Hardware
WS2007/08 Finished Silvan Graf Compilation for Magnetic-RAM-based FPGAs in the Quiddity Project
SS2007 Finished Franziska Fritschi Garbage Collection for Pepper
WS2006/07 Finished Nina Laschet Graph Transforming Lenses for Pepper
WS2006/07 Finished Stefan Wismer A Simulator for MRAM-based FPGAs in Quiddity

Supervised Semester Projects

Date Status Student(s) Project
SS2010 Finished Can Ali Akgül Synchronization for Parallel Programming in Multi-Clients/Server Environment
SS2010 Finished Ruedi Steinmann Meta-circular Self Implementation using the Mantuko Language
SS2007 Finished Adrian Gauch Comparing the Effectiveness of Magnetoresistive Elements to Transistors for the Quiddity Project
SS2007 Finished Daniel Kellenberger Project Directory
WS2006/07 Finished Ken Lee, Michael Gubser A Framework for Managing Project Resources based on Temporal Relationships
SS2006 Finished Ruihua Jin Diagram Editor for Tablet PCs
SS2006 Finished Nina Laschet A Virtual Machine for Pepper
WS2005/06 Finished Ivan Apert Brainchild
WS2005/06 Finished Tobias Stamm Chair'o'Peer