JC Virtual Machine - Converts Java to C

  •        8390

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


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


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


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


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

Kaffe


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


Jikes RVM is a flexible infrastructure for virtual machine research

Hydrogen - A basic process virtual machine


A simple [register based](http://markfaction.wordpress.com/2012/07/15/stack-based-vs-register-based-virtual-machine-architecture-and-the-dalvik-vm/) [process virtual machine](http://stackoverflow.com/questions/22477128/difference-between-process-virtual-machine-with-system-virtual-machine) which is written in C/C++. It uses its own dialect of assembly and is designed to work on OSX x86_64 systems. It is intended to be used with the Giraffe Programming language but can be used with others.

mini-vm - A small, register-based virtual machine (bytecode interpreter) in C.


A small, register-based virtual machine (bytecode interpreter) in C.

DataScienceVM - Tools and Docs on the Azure Data Science Virtual Machine (http://aka.ms/dsvm)


The Data Science Virtual Machine (DSVM) is a customized VM image on Microsoft’s Azure cloud built specifically for doing data science. It has many popular data science and other tools pre-installed and pre-configured to jump-start building intelligent applications for advanced analytics. It is available on Windows Server 2016, Windows Server 2012, and on Linux. We offer Linux edition of the DSVM in either Ubuntu 16.04 LTS or on OpenLogic 7.2 CentOS-based Linux distributions. You can try the Data Science VM for free for 30 days (with $200 credits) with a free Azure Trial. The Linux (Ubuntu-based) DSVM also provides a test drive through a button on the product page. The Test Drive will provide full access to you own instance of the VM with just a free Microsoft account (No Azure subscription or CC needed).On this repo, we will feature tools, tips and extensions (see below) to the Data Science VM. We invite the DSVM user community to contribute any useful tools or scripts, extensions you may have written to enhance the user experience on the DSVM.

appengine-java-vm-guestbook-extras


The [App Engine Managed VMs](https://developers.google.com/appengine/docs/managed-vms/) hosting environment lets you run App Engine applications on configurable Compute Engine Virtual Machines (VMs). This VM-based hosting environment offers more flexibility and provides more CPU and memory options. Applications that run on Managed VMs are not subject to Java and Python runtime restrictions, and they have access to all the Compute Engine machine types. You can also add third-party libraries and f

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.

JDLabAgent


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

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.

malbolge-vm - Malbolge virtual machine and interpreter.


Malbolge virtual machine and interpreter.

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.

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.

open-vm-tools - Official repository of VMware open-vm-tools project


open-vm-tools is a set of services and modules that enable several features in VMware products for better management of, and seamless user interactions with, guests. It includes kernel modules for enhancing the performance of virtual machines running Linux or other VMware supported Unix like guest operating systems.