Tuesday, November 11, 2008
Traversal in the wrong order
Lately, i've been pounding away at Types and Programming Languages, the canonical textbook for a grad-level programming languages class. While it is very thick and a bit of a challenge for independent study, it is definitely easier than trying to learn the content in Japanese. It occurred to me on the way home today that students at Purdue had to be learning this stuff too, since it is the basis for PL research, right?
Turns out Prof. Vitek (my research advisor at Purdue) is teaching the graduate-level programming langauges class at Purdue this semester. If only I could have taken that before coming over here, I wouldn't be dawdling in the dark with the finer points of the typed lambda calculus! I suppose I can still use the class slides, but without accompanying lecture it is sometimes hard to make heads or tails of the more tricky parts. Also, that class only goes halfway through the book, and has a more practical bent with topics such as concurrency and garbage collection (the latter no doubt a result of Filip Pizlo being the TA for the class).
Lately, i've being pushed by lab members at Tohoku to see what everyone else is doing and find a project. The problems are twofold: aside from the extroverts (who talk about their work all of the time!), its very hard to approach/interrupt other students for an impromptu presentation. This is complicated by the fact that I am at a total loss when you combine type theory and Japanese. Secondly, many of the projects just do not look that interesting. Either they are doing things which have already been done to death (timing attack prevention by types? check. safe deallocation in single-thread programs? check), things which seem purely academic, or are well beyond the scope of my current (limited) grasp of theory (higher-order recursion schemes, multi-stage calculi).
If I could simply postpone doing any real work for another month or two and catch up on System F, Pi Calculus, and similar base theory, I might actually have a chance to make some contribution (or at least have an intelligent if awkward conversation). Even if I join someone else's project, without such base theory, I won't really know what's going on anyway. Similarly, I need to be able to read and understand papers on gradual typing (and the long line of literature such papers stand upon) if I want to have a realistic chance of adapting it to Thorn's type system at Purdue.
Time for catching up on Japanese (especially technical and speaking experience) is similar, although it's a shame I can't stop the world from spinning away so I can catch up.