MACRO-32 is the macro assembler language originally used on the VAX. When ALPHA was the new processor, a MACRO-32 compiler was written to translate MACRO-32 code directly to ALPHA. As everybody can plainly see, this approach was quite succcessful. A similar approach has been taken with IA-64, with a MACRO-32 compiler generating native IA-64 code.
Similarly, image translation was used ALPHA to allow VAX applications to run efficiently without the need to recompile the sources. This approach has been used successfully since ALPHA (indeed, the MONITOR utility was translated from a VAX-compiled set of sources until recently, some other programs are still binary translated). The same approach is being made available with IA-64, and it works.
Performance is a complex issue, no single number adequately expresses the complexities of the situation, and certainly your mileage will vary. I do not have the time to write a treatise on the subject, but will say that it dramatically depends on which compilers you use, which optimizations are enabled, and what your application does. Some applications will benefit immediately, and some may not.
I recently attended the OpenVMS track of the HP - Intel Developer forum, and OpenVMS 8.2 is very much ready for real use on both ALPHA and IA-64 (see my account at http://www.openvms.org/)
- Bob Gezelter (http://www.rlgsc.com/)
We declare the names of all variables and functions. Yet the Tao has no type specifier.