Inside COM
H/Direct: a binary foreign language interface for Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture
Implementing a Java TM Virtual Machine in the Java Programming Language
Implementing a Java TM Virtual Machine in the Java Programming Language
Automated and Portable Native Code Isolation
Automated and Portable Native Code Isolation
Portable multithreading: the signal stack trick for user-space thread creation
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
A distributed object model for the javaTM system
COOTS'96 Proceedings of the 2nd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 2
Jeannie: granting java native interface developers their wishes
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Adaptive heterogeneous language support within a cloud runtime
Future Generation Computer Systems
Hi-index | 0.00 |
Managed Runtime Environments (MRTEs) such as the Java platform promise a cross platform "Write Once, Deploy Anywhere" mechanism. However, MRTE applications that contain native method calls are not seamlessly portable across platforms. In this paper, we describe a new approach to transparently run Java applications containing native method calls to one ISA (Instruction Set Architecture) on a different ISA's Java platform. This approach operates within the same operating system process that executes the application but with the support of a dynamic translator. This paper describes the technical challenges and solutions of such an in-process implementation within a production Java Virtual Machine (JVM). These include interfacing the JVM with a dynamic translator to support native calls to a different ISA, pursuing a JVM-independent implementation, enhancing the dynamic translator to support shared libraries in addition to executables, marshalling arguments across ISA boundaries, and providing full support for all Java features such as multi-threading. The paper presents performance results for an end-user application, showing our approach to be 2-3 times faster than other approaches.