Optimizing direct threaded code by selective inlining
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
MoHCA-Java: a tool for C++ to Java conversion support
Proceedings of the 21st international conference on Software engineering
Cappuccino — A C++ to Java translator
SAC '98 Proceedings of the 1998 ACM symposium on Applied Computing
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
ECOOP '01 Proceedings of the Workshops on Object-Oriented Technology
Strategies for Migration from C to Java
CSMR '01 Proceedings of the Fifth European Conference on Software Maintenance and Reengineering
Xen and the art of virtualization
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Complete translation of unsafe native code to safe bytecode
Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators
Avrora: scalable sensor network simulation with precise timing
IPSN '05 Proceedings of the 4th international symposium on Information processing in sensor networks
DIGITAL FX!32 running 32-bit ×86 applications on alpha NT
NT'97 Proceedings of the USENIX Windows NT Workshop on The USENIX Windows NT Workshop 1997
The Java Virtual Machine in retargetable, high-performance instruction set simulation
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Superblock compilation and other optimization techniques for a Java-based DBT machine emulator
Proceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Hi-index | 0.00 |
The move toward pure managed-code environments is held back by the vast amount of legacy software available only as statically compiled binaries for some legacy instruction set architecture (ISA). Catering to this legacy software requires all sorts of compromises, from the necessity of providing backward compatibility with dated instruction sets to the need for unsatisfactory mixed-mode environments, in which the legacy code runs "besides" (rather than on top of) the managed code platform. We have been investigating strategies for running legacy binaries on top of, rather than "besides", a managed code platform, by virtualizing the legacy ISA. Our system "upcompiles" low-level machine code to high-level Java code, which can then be executed on any Java Virtual Machine (JVM). On JVMs that have a just-in-time compiler, our generated JVM bytecode is subsequently "downcompiled" again into the native code of the host machine (which may be identical or different from the starting ISA). Despite executing on top of the Java Virtual Machine, our system delivers performance comparable to commercial-strength dynamic translators such as QEMU that directly generate platform-dependant machine code.