Why No Latte?

So why did I write this interpreter?

Latte was abandoned in favor of Blatte, a port of Latte to Perl. I didn't like the way that Blatte worked, and their "place holder" website wasn't updated in years (and the domain is now expired). So I kept using the original Latte, even when it required me to fight to get it compiled with newer versions of gcc. (I'm not even sure if it's possible to compile today in 2007.)

Then I got interested in playing around with ANTLR for generating lexers and parsers in Java. I was already interested in unit testing (particularly with JUnit). And I've been a huge fan of Java pretty much from its beginning.

So I thought to myself: I love using Latte to write my webpages, I love writing Java code and unit testing, and I'd like to learn ANTLR. Why don't I write an interpreter for Latte myself in Java, with ANTLR, and using test-driven development principles? Voila: a year and a half later, I got an interpreter that works well enough for my use (most of the time).

Since then, I've done quite well with ANTLR and agile development in general. I keep using No Latte as a way to test out the things I've learned. I also teach a Programming Languages course (at Calvin College), and I'm writing a lab manual (or textbook) describing how to build an interpreter using agile software development.

On the off chance that I'm not the only one who found (or still finds) Latte useful, I figured I'd offer it up to the whole Internet community.

Creative Commons License © 2007. Developer and website author: Jeremy D. Frens
This website is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License