All Projects → phillbush → jvm

phillbush / jvm

Licence: MIT License
simple java virtual machine

Programming Languages

c
50402 projects - #5 most used programming language
Roff
2310 projects
java
68154 projects - #9 most used programming language
Makefile
30231 projects

Labels

Projects that are alternatives of or similar to jvm

jnigi
Golang Java JNI library
Stars: ✭ 92 (+73.58%)
Mutual labels:  jvm
jni-bindgen
Generate Rust JVM FFI wrappers around APIs defined by .jar or .class files, because maintaining your own hand-written bindings is an exercise in boredom, soundness bugs, and pain.
Stars: ✭ 55 (+3.77%)
Mutual labels:  jvm
mapneat
MapNeat is a JVM library written in Kotlin that provides an easy to use DSL (Domain Specific Language) for transforming JSON to JSON, XML to JSON, POJO to JSON in a declarative way.
Stars: ✭ 45 (-15.09%)
Mutual labels:  jvm
Java-Rule-Book
Basic concepts of Java to answer any question about how Java works
Stars: ✭ 36 (-32.08%)
Mutual labels:  jvm
bck2brwsr
Bck2Brwsr VM to transpile Java bytecode to JavaScript
Stars: ✭ 93 (+75.47%)
Mutual labels:  jvm
sbt-jni
SBT Plugin to ease working with JNI
Stars: ✭ 110 (+107.55%)
Mutual labels:  jvm
iokk
International Obfuscated Kotlin Contest
Stars: ✭ 56 (+5.66%)
Mutual labels:  jvm
JNotes
Java 工程师必备的技术知识点,全力打造Java 程序员的技能体系知识库;主要体现在 Java 基础、算法、网络、后端框架、数据库、操作系统等方面知识整理。对于Java 初学者升中高级、以及Java后端开发人员的的面试者都有非常显著的帮助。个人博客:www.husycode.cn
Stars: ✭ 33 (-37.74%)
Mutual labels:  jvm
eta-ffi
A command line tool to automate the generation of ffi import code for the bindings of various Java libraries.
Stars: ✭ 19 (-64.15%)
Mutual labels:  jvm
secrets.clj
A library designed to generate cryptographically strong random numbers.
Stars: ✭ 64 (+20.75%)
Mutual labels:  jvm
play-scala-chatroom-example
Play chatroom with Scala API
Stars: ✭ 43 (-18.87%)
Mutual labels:  jvm
jvm
Pure Rust implementation of the JVM 7 specification
Stars: ✭ 27 (-49.06%)
Mutual labels:  jvm
play-java-ebean-example
Example Play application showing Java with Ebean
Stars: ✭ 54 (+1.89%)
Mutual labels:  jvm
splunk-otel-java
Splunk Distribution of OpenTelemetry Java
Stars: ✭ 39 (-26.42%)
Mutual labels:  jvm
jaz
A JVM implementation in Zig!
Stars: ✭ 44 (-16.98%)
Mutual labels:  jvm
flamegrapher
Web frontend and REST API for Java Flight Recorder with Flamegraphs 🔥
Stars: ✭ 77 (+45.28%)
Mutual labels:  jvm
crypto
A collection of Kotlin Multiplatform Mobile cryptographic hashing functions.
Stars: ✭ 45 (-15.09%)
Mutual labels:  jvm
play-scala-secure-session-example
An example Play application showing encrypted session management
Stars: ✭ 54 (+1.89%)
Mutual labels:  jvm
play-scala-anorm-example
Example Play Database Application using Anorm
Stars: ✭ 41 (-22.64%)
Mutual labels:  jvm
go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (+15.09%)
Mutual labels:  jvm
                                  jvm

This is the implementation of a simple Java Virtual Machine.  This is
the final project of the first semester of 2021 of the System Software
course of the Computer Science department of the University of Brasilia.

The following tools are implemented:
• javap(1): Disassembles one or more class files.
• java(1):  Launches a Java application.


§ Files

• util.[ch]:    miscellaneous routines
• class.[ch]:   routines and definitions related to class structure
• native.[ch]:  routines and definitions related to native code
• memory.[ch]:  routines and definitions related to JRE memory
• file.[ch]:    routines to read and free .class files
• javap.c:      .class file disassembler
• java.c:       .class file interpreter
• tests/*:      collection of simple .java files for testing the jvm


§ Running

To build the jvm, run the following command.  This will create the
executable file ./java for the jvm.

	make java

To build the disassembler, run the following command.  This will create
the executable file ./javap for the disassembler.

	make javap

To test the disassembler, run make on one of the test files with its
suffix replaced with "p".  For example, to test the disassembler on
the test class tests/HelloWorld.class, run the following command.

	make tests/HelloWorld.p

To test the disassembler on all test classes, run the following command.

	make testp

To test the jvm, run make on one of the test files with its suffix
replaced with "j".  For example, to test the jvm on the test class
tests/HelloWorld.class, run the following command.

	make tests/HelloWorld.j

To test the jvm on all test classes, run the following command.

	make testj


§ See Also

The Java® Virtual Machine Specification: Java SE 8Edition,
by Tim Lindholm, Frank Yellin, Gilad Bracha, Alex Buckley,
Addison-Wesley, 2014.
ISBN: 978-0-13-390590-8.
https://docs.oracle.com/javase/specs/jvms/se8/html/
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].