All Projects → mirkosertic → Bytecoder

mirkosertic / Bytecoder

Licence: apache-2.0
Rich Domain Model for JVM Bytecode and Framework to interpret and transpile it.

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language
kotlin
9241 projects
bytecode
52 projects

Projects that are alternatives of or similar to Bytecoder

Evm2wasm
[ORPHANED] Transcompiles EVM code to eWASM
Stars: ✭ 96 (-76.06%)
Mutual labels:  compiler, transpiler, webassembly
Speedy.js
Accelerate JavaScript Applications by Compiling to WebAssembly
Stars: ✭ 300 (-25.19%)
Mutual labels:  compiler, llvm, webassembly
Ilgpu
ILGPU JIT Compiler for high-performance .Net GPU programs
Stars: ✭ 374 (-6.73%)
Mutual labels:  compiler, opencl
Wasmdec
WebAssembly to C decompiler
Stars: ✭ 290 (-27.68%)
Mutual labels:  decompiler, webassembly
Webml
A Standard ML Compiler for the Web
Stars: ✭ 326 (-18.7%)
Mutual labels:  compiler, webassembly
ugo-compiler-book
📚 µGo语言实现(从头开发一个迷你Go语言编译器)[Go版本+Rust版本]
Stars: ✭ 996 (+148.38%)
Mutual labels:  llvm, webassembly
Cone
Cone Programming Language
Stars: ✭ 257 (-35.91%)
Mutual labels:  compiler, webassembly
Wax
A tiny programming language that transpiles to C, C++, Java, TypeScript, Python, C#, Swift, Lua and WebAssembly 🚀
Stars: ✭ 373 (-6.98%)
Mutual labels:  compiler, transpiler
Llvm
[MERGED UPSTREAM] AVR backend for the LLVM compiler library
Stars: ✭ 222 (-44.64%)
Mutual labels:  compiler, llvm
Bfc
An industrial-grade brainfuck compiler
Stars: ✭ 340 (-15.21%)
Mutual labels:  compiler, llvm
Staticscript
🎉🎉🎉 A new statically typed programming language, syntactically like TypeScript.
Stars: ✭ 337 (-15.96%)
Mutual labels:  compiler, llvm
Decomp
Components of a decompilation pipeline.
Stars: ✭ 343 (-14.46%)
Mutual labels:  llvm, decompiler
anvill
anvill forges beautiful LLVM bitcode out of raw machine code
Stars: ✭ 228 (-43.14%)
Mutual labels:  llvm, decompiler
doc
Design documents related to the decompilation pipeline.
Stars: ✭ 23 (-94.26%)
Mutual labels:  llvm, decompiler
Deepc
vendor independent deep learning library, compiler and inference framework microcomputers and micro-controllers
Stars: ✭ 260 (-35.16%)
Mutual labels:  compiler, llvm
Ts Llvm
TypeScript to LLVM compiler (abandoned)
Stars: ✭ 230 (-42.64%)
Mutual labels:  compiler, llvm
Nlvm
LLVM-based compiler for the Nim language
Stars: ✭ 380 (-5.24%)
Mutual labels:  compiler, llvm
Customasm
💻 An assembler for custom, user-defined instruction sets! https://hlorenzi.github.io/customasm/web/
Stars: ✭ 211 (-47.38%)
Mutual labels:  compiler, webassembly
Retyped
Access 3600+ libraries from C# and let Bridge.NET compile your project into JavaScript.
Stars: ✭ 216 (-46.13%)
Mutual labels:  compiler, transpiler
Soll
SOLL is a new compiler for generate Ewasm from solidity and yul. See a demo here: https://asciinema.org/a/ezJqNLicn5fya02zwu4VXIo8a
Stars: ✭ 329 (-17.96%)
Mutual labels:  compiler, llvm

Bytecoder

Bytecoder is a Rich Domain Model for Java Bytecode and Framework to interpret and transpile it to other languages such as JavaScript, OpenCL or WebAssembly.

Current Build status: Build Workflow Maven Central

High Level Goals

  • Ability to cross-compile JVM Bytecode to JavaScript, WebAssembly, OpenCL and other languages
  • Primary compile targets are JavaScript and WebAssembly
  • Act as a JVM Bytecode frontend for LLVM
  • Supports Java 8, 9, 10, 11, 12, 13, 14 and 15
  • Work well with Debugger Toolchains and SourceMaps
  • Allow integration with other UI-Frameworks such as vue.js
  • Backed by OpenJDK 15 as JRE Classlib

Compiling strategies

The JVM Bytecode is parsed and transformed into an intermediate representation. This intermediate representation is passed thru optimizer stages and sent to a backend implementation for target code generation.

The JavaScript backend transforms the intermediate representation into JavaScript.

The WebAssembly backend transforms the intermediate representation into WebAssembly text and binary code.

The OpenCL backend is used to compile single algorithms into OpenCL and execute them on the GPU. This backend is designed to enhance existing programs running on the JVM to utilize the vast power of modern GPUs.

User Manual

The Bytecoder User Manual and a full set of example applications is available here.

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