GitHub - mirkosertic/Bytecoder: Framework to interpret and transpile JVM bytecod...
source link: https://github.com/mirkosertic/Bytecoder
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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:
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, 15, 16 and 17
- Work well with Debugger Toolchains and SourceMaps
- Allow integration with other UI-Frameworks such as vue.js
- Backed by OpenJDK 17 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.
Recommend
-
50
GitHub is where people build software. More than 27 million people use GitHub to discover, fork, and contribute to over 80 million projects.
-
35
README.md
-
97
readme.md sklearn-porter
-
14
Corpus Query Langauge Subset Parse Corpus Query Language into a list of queries in JSON format. Installation pip install cqls Usage >>> import cqls >>> cql = '''...
-
13
Copy link Contributor hyd-dev commented
-
6
JavaScript Bundling for Rails Use esbuild, rollup.js, or Webpack to bundle your JavaScript, then deliver it via the as...
-
7
Why and how to transpile dependencies of your JavaScript applicationShow OriginalIf you’re a web developer, I’m sure that you use bundlers (e.g.,
-
8
ESP-TypeScript Transpile TypeScript to Espruino flavor of JavaScript for ESP8266/ESP32 microcontrollers template project. Writing safe, maintainable, and testable code i...
-
3
klox: a lox compiler written in Kotlin At the same time Crafting Interpreters came up next on my reading list, I was also learning Kotlin. To knock two birds with one stone,...
-
4
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK