Wednesday, February 25, 2009
Picking a Research Topic
For the last month or so at least, I've been trying to pick out a specific topic and project. This is as part of my research in the Kobayashi-Sumii lab. Most of the reason that it is going so slow is that I am only a Junior. I spent the better part of last semester catching up to a grad-level understanding of type systems, programming languages, and paper-reading ability. Even so, there are so many topics out there that I do not yet have the slightest understanding about (effect systems, static analyses, ownership, dependent types, module systems, monads, ...).
Recently we've been trying to find some research topics that tie the Kobayashi lab's specialty (process calculi and static analysis) into mainstream languages and real-world applications. At first we looked at bringing more powerful pi calculus usages to a Java extension, but Java is not well-suited to the message-passing style that process calculi model. Furthermore, a pi calculus library for Scala has been implemented (pilib) but it seems to be a dead end due to lack of practical application.
While looking at PiLib, I found out that it is implemented entirely as a library using Scala Actors (which in turn are entirely implemented as a library). This week it occurred to me that Actors and process calculi must be related, as they are both models of concurrency. I found a few papers today that seek to show the link between Actors and Pi-calculus, so this may be a possible lead for something interesting.