Our moderator wrote:
[Another possibility is to generate byte codes and then write a little
interpreter to runs them. Worked for UCSD Pascal, works for Java. -John]

...and it works for me! An important factor for a hobby project
(and compilers are my hobby, I *manage* computers for a living) is to get
*something* working before you completely lose heart. Having an interpreter
means that you split one large project into two smaller ones, and porting
from one system to another becomes much easier. (This is also important if
the project becomes a long one because you can only work on it spasmodically.)