Linus: Praying for Hammer to Win
I never had any experience of the Unix-based tools, but I have used VEST, which is the VMS-based binary translator.
As you said, it worked like a charm. There were only three major limitations:
Shareable images [=shared libraries] could also be translated, and images could then be pointed at the translated shareable image. So, even to this day, on an Alpha you have two Fortran sharable images: FORRTL (Alpha native) and FORRTL_TV (VESTed image for VAX support).
- You couldn't translate "system" images, because they were linked against the system symbol table (SYS.STB).
- You couldn't translate an image which was compiled on VMS version 3.0 or earlier (well, there has to be a cut-off point for backwards compatibility somewhere!). So, programs compiled before 1984 were untranslatable [including VAX Space Invaders unfortunately (compiled 1981; never found any sources)]
- You couldn't translate images which used self-modifying code.
Object libraries could not be translated, but the compilers still generated (and maybe still do?) VAX object code and the linker could create a VAX executable, which could then be translated.
IIRC, it used recompilation rather than interpretation: the recompilation was not dynamic, but the image activator would generate .HIF files when it came across a piece of code that could be re-organised; these .HIF files could then be used to re-optimise the executable by VESTing the VAX executable and telling VEST to look at the .HIF file.
VEST is no longer available with new Alphas, but you can still get it, if you ask, from Digital...errm, sorry, Compaq...errm, sorry, "the new hp" ;)
A similar binary translator is planned to translate Alpha binaries to IA64 binaries for the IA64 port of VMS.
 Officially I believe the name stood for "VAX Executable Symbol Translator" or some such.
 Because it could be very bad for system stability, as kernel data structures were radically different.