Kaffe - Not Java

  •        3698

Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. It has support for Garbage Collector, Debugging, Profiler, Benchmarking etc. It has been ported to multiple platforms. Among the open source VM, Kaffe is actively developed. Kaffe is not an officially licensed version of the Java virtual machine. It contains no Sun source code and was developed without even looking at the Sun source code. Kaffe is a great choice as a base for virtual machine education and research.

http://www.kaffe.org/

Tags
Implementation
License
Platform

   




Related Projects

Kaffe


Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment.

Cacaovm - Just-In-Time (JIT) Compiler


cacaovm is a Java Virtual Machine (JVM) which uses Just-In-Time (JIT) compilation to execute Java methods natively. cacaovm uses GNU Classpath or OpenJDK or phoneME as Java runtime library. The cacaovm project started as a research JVM to explore new implementation techniques. The first version for the Alpha was released in February 1997 as a binary.

GNU Classpath - Mother of most of the VM


GNU Classpath provides core class libraries for use with virtual machines and compilers for the java programming language. GNU Classpath 1.0 will be fully compatible with the 1.1 and 1.2 API specifications, in addition to having significant compatibility with the 1.3, 1.4, 1.5 and 1.6 APIs.

JC Virtual Machine - Converts Java to C


JC Virtual machine converts Java class files to C source code. It could also compiles with GCC and loads them with built-in ELF loader. Additional to that, JC provides a complete Java runtime with optimization to increase performance.

Harmony - Open Source Java SE


Apache Harmony is a modular Java runtime with class libraries and associated tools. One of the goals of the Harmony project is to create a design modular enough so that parts of the VM can be implemented in different languages. This project started in 2005 and it is under active development.


Java SE - Creator of Java


Java Standard Edition provides Java development kit and Runtime to develop and deploy Java programs. Developed by Sun and take over by Oracle. It has support for different environments like Desktop, Embedded, Web, Realtime etc.

Open JDK - Open Source implementation of Java


Open JDK is the open source implementation of Java platform. It has loads of sub projects like JDK6, JDK7, HotSpot, Graphics, Swing, Web etc.

IKVM.NET - Java for Mono and .NET Framework


IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. It has JVM implemented in .NET. A .NET implementation of Java class libraries. It is interoperable between Java and .NET.

Graal - High-Performance Polyglot VM


GraalVM is a universal virtual machine for running applications written in JavaScript, Python 3, Ruby, R, JVM-based languages like Java, Scala, Kotlin, and LLVM-based languages such as C and C++. GraalVM removes the isolation between programming languages and enables interoperability in a shared runtime. It can run either standalone or in the context of OpenJDK, Node.js, Oracle Database, or MySQL.

mac - virtual machine in c


mac is a simple virtual machine created for educational purposes. Here is the accompanied blog post. There is a slightly more extended example in the mac-improved folder.

Small Deterministic D Embedded Assembler Register Machine


SIDEARM is a minimal, virtual register machine that acts as an interpreter/shell for valid AVR assembly language execution in real-time by the virtual machine.

erjang - A JVM-based Erlang VM


Erjang is a virtual machine for Erlang, which runs on Java 7.It loads Erlang's binary .beam file format, compiles it into Java's .class file format, and loads it into the JVM. It will eventually have it's own implementation of all Erlang's BIFs (built-in-functions) written in Java.

Packer - Build Automated Machine Images


Packer is a tool for building identical machine images for multiple platforms from a single source configuration. It is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel.

HHVM - HipHop Virtual Machine for PHP


HHVM (aka the HipHop Virtual Machine) is a new open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to.

Jikes RVM


Jikes RVM is a flexible infrastructure for virtual machine research

UCSD p-System Virtual Machine


The ucsd-psystem-vm project is a portable virtual machine (p-code interpreter) for the UCSD p-System. It supports execution of Apple ][ Pascal programs, it can even display TurtleGraphics using X11.

Libretto - Golang library to create Virtual Machines (VMs) on any cloud


Libretto is a Golang library to create Virtual Machines (VM) on any cloud and Virtual Machine hosting platforms such as AWS, Azure, OpenStack, vSphere, VMware Workstation/Fusion, Exoscale or VirtualBox. Different providers have different utilities and API interfaces to achieve that, but the abstractions of their interfaces are quite similar.

node-jvm - java virtual machine in pure node.js


The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

byte-buddy - Runtime code generation for the Java virtual machine.


Byte Buddy is a Java library for creating Java classes at run time. The parent artifact contains configuration information that concern all modules.

WAVM - WebAssembly Virtual Machine


This is a standalone VM for WebAssembly. It can load both the standard binary format, and the text format defined by the WebAssembly reference interpreter. For the text format, it can load both the standard stack machine syntax and the old-fashioned AST syntax used by the reference interpreter, and all of the testing commands. To build it, you'll need CMake and LLVM 6.0. If CMake can't find your LLVM directory, you can manually give it the location in the LLVM_DIR CMake configuration variable. Note that on Windows, you must compile LLVM from source, and manually point the LLVM_DIR configuration variable at <LLVM build directory>\lib\cmake\llvm.