FORTH and LISP come to mind as great intermediate languages. You can easily convert from just about any other language into FORTH or LISP and execute those inside a virtual machine. Its easy to write "cross-compilers" in both languages and there are already tons out there. Also, implementing either is relatively trivial.

Just some food for thought

- Jeremy