JC Virtual Machine - Converts Java to C

  •        8412

JC Virtual machine converts Java class files to C source code. It uses SOOT Java Bytecode analysis framework to convert the Java files to C. 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.

JC optimizes the code at code generation time which increases its runtime performance. It does have good interpreter but most of the jobs are done at the code generation time. When combined with the proven power of GCC's C optimizer the results are impressive.

Additional to C conversion and Java runtime, It has thread support based on the POSIX pthread(3). Support for JNI, Reflection and Java 2 style loader support is also available. It uses GNU Classpath to provide java runtime.

http://jcvm.sourceforge.net/

Tags
Implementation
License
Platform

   




Related Projects

Harmony - Open Source Java SE

  •    Java

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.

Cacaovm - Just-In-Time (JIT) Compiler

  •    Java

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.

Kaffe - Not Java

  •    Java

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

GNU Classpath - Mother of most of the VM

  •    C

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.

Java SE - Creator of Java

  •    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

  •    C

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

  •    Java

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

  •    Java

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.

Kaffe

  •    C

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

Jikes RVM

  •    Java

Jikes RVM is a flexible infrastructure for virtual machine research

mac - virtual machine in c

  •    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.

erjang - A JVM-based Erlang VM

  •    Java

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.

PH7 - An Embedded Implementation of PHP (C Library)

  •    C

PH7 is a in-process software C library which implements a highly-efficient embeddable bytecode compiler and a virtual machine for the PHP programming language. In other words, PH7 is a PHP engine which allow the host application to compile and execute PHP scripts in-process. PH7 is to PHP what SQLite is to SQL. As an embedded interpreter, it allows multiple interpreter states to coexist in the same program, without any interference between them. Programmatically, foreign functions in C/C++ can be added and values can be defined in the PHP environment. Being a quite small program, it is easy to comprehend, get to grips with, and use.

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

  •    Java

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

JDLabAgent

  •    C

JDLabAgent is a dynamic link library which is loaded into the Java Virtual Machine via Java Virtual Machine Debug Interface (JVMDI). The JDLabAgent can be parameterized via config files and logs JVM events (e.g. breakpoints, exceptions).

HHVM - HipHop Virtual Machine for PHP

  •    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.

UCSD p-System Virtual Machine

  •    C

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.

rvmi - rVMI - A New Paradigm For Full System Analysis

  •    C

rVMI is a debugger on steroids. It leverages Virtual Machine Introspection (VMI) and memory forensics to provide full system analysis. This means that an analyst can inspect userspace processes, kernel drivers, and pre-boot environments in a single tool. It was specifically designed for interactive dynamic malware analysis. rVMI isolates itself from the malware by placing its interactive debugging environment out of the virtual machine (VM) onto the hypervisor-level. Through the use of VMI the analyst still has full control of the VM, which allows her to pause the VM at any point in time and to use typical debugging features such as breakpoints and watchpoints. In addition, rVMI provides access to the entire Rekall feature set, which enables an analyst to inspect the kernel and its data structures with ease.

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.

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.