Simple Open-Source Java Virtual Machine in C
1–10 of 14 posts
Re: Simple Open-Source Java Virtual Machine in C
#2Java Language and Virtual Machine Specifications
https://docs.oracle.com/javase/specs/index.html
OpenJDK (About + implementation comparison table):
Re: Simple Open-Source Java Virtual Machine in C
#3Re: Simple Open-Source Java Virtual Machine in C
#4Re: Simple Open-Source Java Virtual Machine in C
#5Re: Simple Open-Source Java Virtual Machine in C
#6I had a buddy that wrote a Java 1.1 JVM from scratch in C back in late '97. He created it completely from the defined specification from Sun and actually found bugs in the spec. IIRC, the found bugs in the thread(s) specification. I believe his JVM was one of the first clean-room JVM implementation outside of Sun's efforts.
Re: Simple Open-Source Java Virtual Machine in C
#7I had a buddy that wrote a Java 1.1 JVM from scratch in C back in late '97. He created it completely from the defined specification from Sun and actually found bugs in the spec. IIRC, the found bugs in the thread(s) specification. I believe his JVM was one of the first clean-room JVM implementation outside of Sun's efforts.
I can imagine that the spec would to some extent reflect an attempt to capture the behavior of the jvm they actually wrote, as opposed to being created first and then having Sun implement afterwards? It sounds like an interesting exercise to recreate it based on the spec and see what got missed.
Re: Simple Open-Source Java Virtual Machine in C
#8> The original Java memory model developed in 1995, was widely perceived as broken, preventing many runtime optimizations and not providing strong enough guarantees for code safety. It was updated through the Java Community Process, as Java Specification Request 133 (JSR-133), which took effect back in 2004, for Tiger (Java 5.0).
Re: Simple Open-Source Java Virtual Machine in C
#9Re: Simple Open-Source Java Virtual Machine in C
#10~90% of the JVM instruction set are simple RISC instructions, the rest is object maintenance. Writting a JVM is like writting an emulator for a simple CPU/platform.