Krakatau
Java decompiler, assembler, and disassembler (by Storyyeller)
Mak_Writing_Compilers_and_Interpreters
Source for the books from Ronald Mak - Writing Compilers and Interpreters. (by GunterMueller)
Krakatau | Mak_Writing_Compilers_and_Interpreters | |
---|---|---|
10 | 1 | |
1,931 | 39 | |
- | - | |
2.9 | 10.0 | |
26 days ago | over 5 years ago | |
Rust | Java | |
GNU General Public License v3.0 only | - |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Krakatau
Posts with mentions or reviews of Krakatau.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-16.
-
How to Create a UTF-16 Surrogate Pair by Hand, with Python
Since Java bytecode uses MUTF-8, which encodes astral characters as surrogate pairs, I've had to implement this conversion in Python multiple times, in Krakatau and Enjarify.
-
How hard is interop with Java?
Not sure how applicable this is for your project since my compiler was written in Python, but I used Krakatau.
- Where do I get started on AoH modding?
-
learn jvm bytecode
Here is one that disassembles the bytecodes and reassembles them https://github.com/Storyyeller/Krakatau .
-
100 Languages Speedrun: Episode 77: JVM Assembly with Jasmin
There's an additional problem that unlike regular assembly or LLVM assembly where there's some fully supported standard format, Jasmin is a third party program and different JVM assemblers and disassemblers disagree on so many things. There are also some newer assemblers and disassemblers like Krakatau you could try instead. Krakatau has different syntax than Jasmin or javap.
- GitHub - Storyyeller/Krakatau: Java decompiler, assembler, and disassembler
-
Awesome CTF : Top Learning Resource Labs
Krakatau - Java decompiler and disassembler.
- Krakatau: An assembler and disassembler for [obfuscated] Java bytecode
-
Chocopy -> JVM Compiler, implemented in Python
The compiler outputs bytecode in a text format, which can be assembled into .class files using the Krakatau assembler. Figuring out how to translate features like nested functions and nonlocals to JVM was pretty interesting, and having access to Java’s standard library made the whole thing much easier than expected.
- Can you tell an assembly language when you see one?
Mak_Writing_Compilers_and_Interpreters
Posts with mentions or reviews of Mak_Writing_Compilers_and_Interpreters.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-01-17.
-
How hard is interop with Java?
The specific example they use is writing a Pascal compiler that targets the JVM (using Jasmin). The repo is here - https://github.com/GunterMueller/Mak_Writing_Compilers_and_Interpreters/tree/master/Mak_Writing_Compiler_3rd_Ed
What are some alternatives?
When comparing Krakatau and Mak_Writing_Compilers_and_Interpreters you can also consider the following projects:
chocopy-python-compiler - Ahead-of-time compiler for Chocopy, a statically typed subset of Python 3, built in Python 3.
CyberChef - The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis
linux - Linux kernel source tree
bettercap - The Swiss Army knife for 802.11, BLE, IPv4 and IPv6 networks reconnaissance and MITM attacks.