Chris Lamb

Final report complete

Just submitted my third-year project. Was probably the longest document I will ever write:

$ wc -w `find ~/local/bzr/3yp/docs/report -name "*.tex"` | tail -n1
19234 total

(If new readers are picking up the story late, in the final year of the Warwick Computer Science course, students are required to undertake a reasonably sized project. I chose to write a Java compiler in Python.)

Actually writing the report was a bit more painful than I thought, dispite having collected and organised most of the data, references and interesting topics well in advance. I've nearly overcome some sort of writers-block-cum-nervousness issue though, which is good.

I got a few interesting results: My backend system had a peephole optimiser to run on all code regardless of the input language and it seems like Sun's javac seems to miss out on many really trivial optimisations, probably because the JIT takes care of any performance blackspots. Regardless, I plan to have a go at adding this into OpenJDK after my exams just as an excuse to hack on the Real Java. (I also did some register allocation, also beating javac, althought I didn't really investigate way)

I'll have to wait for while due to University regulations anyway, but I'm not sure if the project code is really fit for public consumption yet, but I plan to rip out the silly Lisp implementation (and most of the Java one) leaving a rather fast and "enterprise-ready" Brainf*** compiler.

Chris Lamb is a freelance software developer and the current Debian Project Leader. You can read other posts by me, see software I have written or read more about me. You can also follow me @lolamby.

Tags: University

Planets: WUGLUG UWCS Debian ALUG

Thursday 3rd May 2007

One comment