chocopy-python-compiler
Krakatau
Our great sponsors
chocopy-python-compiler | Krakatau | |
---|---|---|
3 | 10 | |
44 | 1,927 | |
- | - | |
5.8 | 2.9 | |
about 1 month ago | 19 days ago | |
Python | Rust | |
MIT License | GNU General Public License v3.0 only |
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.
chocopy-python-compiler
-
Chocopy -> CIL compiler: compiles a subset of Python 3 to Common Intermediate Language (.NET)
Links: - Github - Blog post with more details about the CIL backend - Blog posts I've written about other parts of the compiler: Frontend/Typechecker, JVM Backend
- Chocopy -> JVM Compiler, implemented in Python
-
Chocopy -> JVM Compiler: compiles a subset of Python 3 to JVM bytecode
Links: - Github - Blog post explaining how I did it
Krakatau
-
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?
What are some alternatives?
devito - DSL and compiler framework for automated finite-differences and stencil computation
CyberChef - The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis
pypperoni - Pypperoni Python Compiler Source Code
linux - Linux kernel source tree
ragaz - Ragaz aims be a fast, safe and powerful language with syntax closest to default python which allow you to create from simple scripts to complex systems in a code easier to read, write and maintain than other system languages with the same purpose (C/C++, Rust, etc).
bettercap - The Swiss Army knife for 802.11, BLE, IPv4 and IPv6 networks reconnaissance and MITM attacks.
front - Front-end libraries and utilities for the Transmuter language processing infrastructure
Mak_Writing_Compilers_and_Interpreters - Source for the books from Ronald Mak - Writing Compilers and Interpreters.
thefuck - Magnificent app which corrects your previous console command.
dotgdb - Extensible client for Mono Soft Debugger. The proof-of-concept of queryable Mono Soft Debugger client (command tool).