Friday, April 18, 2008

Jython thesis project

I need to get better at publishing stuff here. I also need to publish the progress of my masters thesis project.
If you know me you already know that I am doing a thesis project related to my work on Jython. If you don't know me, and/or didn't know that before, you know it now.
The tentative title of the thesis is "Supporting dynamic languages on the present and future implementations of the Java Virtual Machine". I am investigating how we could better represent dynamic languages on the JVM, with focus on Python. As part of this I am evaluating the suggested new features of the Da Vinci Machine, and how that project would aid implementations of dynamic languages, Jython in particular. But I am also looking into how to support the benefits of the future platforms on the current versions of the JVM, something I know the entire JVM-languages community is interested in. Furthermore I am also trying to evaluate what the Da Vinci Project has missed, by compiling a wish list of features that the JVM could implement in order to better support dynamic languages. Again, this list is compiled from my findings with Python on the JVM.
I have been working on Jython for about a year now, and I've had the idea of doing my thesis on something related to Jython for quite some time as well. Although it took me some time to define exactly what to do. Mostly because I've had too much fun stuff to do at work. By this post I want to mark an end to that phase. Since of a week ago I have written and submitted my project plan to my examiner, and gotten it accepted. I have also made a few modifications based on the comments I got back.
In the project plan I have stated that I will post weekly updates on the progress of the project here every Friday. So here is the first of those posts.
The most recent achievements, this week, has been that I've set up a computer with the MLVM so that I can start trying out the new features that it has to offer. I have already ported (most of) the compiler I wrote during the Summer of Code to Java. So I have a platform there to continue building this project on.
The most immediate task ahead of me now is writing a paper for the Dynamic Languages Symposium. Me and Jim have some plans for what we would like to publish there, and that is what I am working on at the moment. The compiler doesn't support all the stuff that we want to include in this paper yet though, so I will have to use a slightly slower compiler, with some scheduling restrictions: myself. But hand compiling is a good way to experiment with how to represent code anyway, so I don't mind.