Higher Level Software: Rise Above C++ (and Java and C#)

This site is for miscellaneous software and links demonstrating the usefulness of the class of languages Python, Ruby, Perl, PHP, and many others. I'm also interested in functional languages like Haskell, F#, SequenceL and Erlang.

I recently finished the course CSEP501: Compiler Construction at the University of Washington. The class project was to write a compiler for the Java subset Minijava. The implementation language was left up to the students, with most using the (default choice) Java, some using C#, at least one team using C++, a couple of us using Python, and at least one team using F#.

I wanted to see if my idea that this project could be done in Python in a fraction of the lines of code it would take in Java or C++. My project took about 1800 lines (plus libraries written by others), and the one C++ project I know about took over 8000. I haven't seen a Java implementation yet but should have one early January 2010.

My Python implementation of this compiler along with my project report and the test suite I got from the Minijava site are here.

Richard Cook's Java implementation (and a link to his blog) is here.

David Robins also gave me permission to link to his C++ implementation. He also maintains a well-written and frequently updated blog at the same site.

I will post other compilers here as I receive permission; please check back. Oh, and check out my poorly predictive but recently restarted blog if you're bored!


Mark McWiggins
markmc51 at washington.edu
Last modified: Fri Jan 8 22:31:05 PST 2010