JVM versus CLR: a comparative study

@inproceedings{Singer2003JVMVC,
  title={JVM versus CLR: a comparative study},
  author={Jeremy Singer},
  booktitle={PPPJ},
  year={2003}
}
We present empirical evidence to demonstrate that there is little or no difference between the Java Virtual Machine and the .NET Common Language Runtime, as regards the compilation and execution of object-oriented programs. Then we give details of a case study that proves the superiority of the Common Language Runtime as a target for imperative programming language compilers (in particular GCC). 

Tables from this paper

JaCIL: a CLI to JVM Compiler

The author proposes a project, named JaCIL (pronounced “jackal”), to create a byte-code compiler to translate from CLI binaries to binaries suitable for consumption by the JVM.

Design and analysis of a scala benchmark suite for the Java virtual machine

Analysis of a Scala benchmark suite shows that Scala programs exhibit not only a distinctive instruction mix but also object demographics close to those of the Scala language’s functional ancestors, which can have a marked effect on the performance of Scala programs on modern high-performance JVMs.

Clash of the Lambdas

It is found that Java exhibits high implementation maturity, which is a dominant factor in benchmarks, and at the same time, optimizing frameworks can be highly effective for common query patterns.

Comparative Studies of Six Programming Languages

This paper presents a comparative study between six programming languages: C++, PHP, C#, Java, Python, VB; These languages are compared under the characteristics of reusability, reliability, portability, availability of compilers and tools, readability, efficiency, familiarity and expressiveness.

Clash of the Lambdas Through the Lens of Streaming APIs

It is found that Java exhibits high implementation maturity, which is a dominant factor in benchmarks, and at the same time, optimizing frameworks can be highly effective for common query patterns.

Extending the SSCLI to Support Dynamic Inheritance

This paper presents a step forward on a research trend focused on increasing runtime adaptability of commercial JIT-based virtual machines, describing how to include dynamic inheritance into this

Multithreading in .Net and Java: A Reality Check

This paper tested the multithreading performance of .Net C# and Java, which are probably the two most frequently used languages for software development today and found that Java proved to be faster in all the tests.

Toward harnessing a Java high-level language virtual machine for supporting software testing

This research argues that HLL VMs provide a reasonable basis for building an integrated software testing environment and devised two software testing features that build on the characteristics of a Java virtual machine (JVM) to automate weak mutation.

Language Run-time Systems: an Overview

A high-level overview of language run-time systems with a focus on execution models, support for concurrency and parallelism, memory management, and communication, whilst briefly mentioning synchronisation, monitoring, and adaptive policy control is provided.

The varying faces of a program transformation systems

Insight is provided into the requirements and characteristics of various language transformation systems that range from procedurally implemented source-to-source transformations to paradigm shift transforms and the merits of alternative transformation systems using Meta languages are concluded.

References

SHOWING 1-10 OF 28 REFERENCES

A benchmark suite for high performance Java

The design and implementation of a standard benchmark suite for Java execution environments are described, paying particular attention to Java-specific issues.

Stacking them up: a comparison of virtual machines

  • K. J. Gough
  • Computer Science
    Proceedings 6th Australasian Computer Systems Architecture Conference. ACSAC 2001
  • 2001
In this study, a compiler was implemented which can produce output code that may be run on either the JVM or .NET platforms, and facilitates comparisons to be made both at compile time and at runtime.

GCC . NET — a feasibility study

We examine the issues involved in producing a backend for the GNU Compiler Collection (GCC) that targets the .NET Common Language Runtime. We describe a simple back-end that is written in standard

Implementing Languages Other than Java on the Java Virtual Machine

How the JVM may be used to implement other object oriented languages is discussed, and a practical example of the possibilities is reported on a comprehensive case study.

Benchmarking Java against C and Fortran for scientific applications

A subset of the Java Grande benchmarks has been re‐written in C and Fortran allowing direct performance comparisons between the three languages.

The Java Virtual Machine Specification

This second edition specifies the newest version of the Java virtual machine and provides a fascinating view into the inner workings of theJava 2 platform.

The Java Programming Language

The Java (TM)Programming Language, Second Edition, is the definitive resource for all serious Java programmers and lets you in on the rationale behind Java's design, direct from the language's creator, as well as the tradeoffs involved in using specific features.

Definition of standard ML

This book provides a formal definition of Standard ML for the benefit of all concerned with the language, including users and implementers, and the authors have defined their semantic objects in mathematical notation that is completely independent of StandardML.

Compiling for the .NET Common Language Runtime

Renowned compiler expert John Gough presents an unprecedented "under the hood" inspection of Microsoft's .NET CLR, illuminating the key concepts underlying Microsoft's new technology and demonstrating exactly how CLR maximizes interoperability across multiple programming languages.

Programming C

Programming C#, 2nd Edition teaches this new language in a way that experienced programmers will appreciate—by grounding its applications firmly in the context of Microsoft's .NET platform and the development of desktop and Internet applications.