On Dec 14, 2008, at 12:47 , William Rutiser wrote: > You may wish to consider implementing a simple interpreter before a > compiler. This would let you see something happening sooner. The > parsing part could be common to both. Some compilers for some > languages rely heavily on an interpreter disguised as a run-time > library. agreed. and I'd also recommend sticking to wirth's book. It is very very terse, but a great book. Start with parsing, add an interpreter, and move to compiling as your final step. The ruby compiler link in this thread is interesting in that it starts from the bottom and works its way up. That might help or hinder depending on your learning style. Last thing, I'd stick to doing the simplest compiler you can for your first one, and not worry about a lot of the issues you brought up in your original email. Books like Hennessy & Patterson's Computer Architecture book and some of the newer texts on VM design will cover those edge cases very well.