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.