Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
Multi-language, Multi-target Compiler Development: Evolution of the Gardens Point Compiler Project
JMLC '97 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
Evaluating the Java Virtual Machine as a Target for Languages Other Than Java
JMLC '00 Proceedings of the Joint Modular Languages Conference on Modular Programming Languages
A portable virtual machine for program debugging and directing
Proceedings of the 2004 ACM symposium on Applied computing
HPC.NET - are CLI-based Virtual Machines Suitable for High Performance Computing?
Proceedings of the 2003 ACM/IEEE conference on Supercomputing
Global instruction scheduling in dynamic compilation for embedded systems
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
JIST: Just-In-Time scheduling translation for parallel processors
Scientific Programming
AMCOS'05 Proceedings of the 4th WSEAS International Conference on Applied Mathematics and Computer Science
Towards proving type safety of .NET CIL
Science of Computer Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
Hi-index | 0.01 |
A popular trend in current software technology is to gain program portability by compiling programs to an intermediate form based on an abstract machine definition. Such approaches date back at least to the 1970s, but have achieved new impetus based on the current popularity of the programming language Java. Implementations of language Java compile programs to bytecodes understood by the Java Virtual Machine (JVM). More recently Microsoft have released preliminary details of their ".NET" platform, which is based on an abstract machine superficially similar to the JVM. In each case program execution is normally mediated by a just in time compiler (JIT), although in principle interpretative execution is also possible.Although these two competing technologies share some common aims the objectives of the virtual machine designs are significantly different. In particular, the ease with which embedded systems might use small-footprint versions of these virtual machines depends on detailed properties of the machine definitions.In this study, a compiler was implemented which can produce output code that may be run on either the JVM or .NET platforms. The compiler is available in the public domain, and facilitates comparisons to be made both at compile time and at runtime.