jasm
A JVM assembler for the modern age (by roscopeco)
klox
A Kotlin implementation of lox with a JVM backend built using ProGuardCORE (by mrjameshamilton)
jasm | klox | |
---|---|---|
10 | 7 | |
422 | 17 | |
- | - | |
2.9 | 2.6 | |
4 months ago | about 2 years ago | |
Java | Kotlin | |
MIT License | MIT License |
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.
jasm
Posts with mentions or reviews of jasm.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-03-23.
- Operadores de adição e subtração
- GitHub - roscopeco/jasm: A JVM assembler for the modern age
- A JVM assembler for the modern age
-
Show HN: I spent my vacation writing a modern JVM assembler
There's a "cookbook" document in the repo, but it's not very comprehensive - I'd be more than happy to take PRs :) https://github.com/roscopeco/jasm/blob/develop/docs/cookbook...
klox
Posts with mentions or reviews of klox.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-12-12.
-
Using Advent of Code to test C3
Last year I did the same: using my extended implementation of Lox. I didn't get so far in Advent of Code itself (only 4 days) since I spent much more time adding features to the language / standard library! Standard Lox as implemented in the Crafting Interpreters book is lacking many useful things including input reading, arrays, collections like sets & hash maps. Example: https://github.com/mrjameshamilton/klox/blob/master/examples/aoc-2021/advent-day01.lox
-
JEP draft: Classfile API
I was also experimenting in Kotlin with some higher-level helper functions for the ProGuardCORE code builder, like using code blocks for try-catch, switches etc
-
Show HN: I spent my vacation writing a modern JVM assembler
Something else that could make your code generation for your JVM language easier: ProGuardCORE (https://github.com/Guardsquare/proguard-core). It can be used to read, generate and analyse Java bytecode.
Some examples for code generation: ProGuard where the project originated (https://github.com/Guardsquare/proguard), Brainf*ck compiler (https://github.com/mrjameshamilton/bf), Lox compiler (https://github.com/mrjameshamilton/klox)
Disclaimer: I work at Guardsquare on ProGuardCORE so may be biased ;)
-
Looking for resources on building a compiler
I implemented Lox in Kotlin based on the book's Java interpreter then added a JVM backend using ProGuardCORE: https://github.com/mrjameshamilton/klox
-
Crafting Interpreters – Web Version
It's a great book! I really liked how it guides step-by-step, always having something working building up to the full interpreter for Lox. I haven't yet gotten around to the 2nd part of the book (the C based interpreter/vm) because I got carried away with adding extra features to my Kotlin Lox implementation (including a JVM backend)! https://github.com/mrjameshamilton/klox
-
Is there any books or guides on how to target JVM bytecode?
Not a book or guide but a useful library for working with/generating JVM class files is ProGuardCORE. It's the underlying library used by ProGuard and I also recently used it to add a JVM backend to my implementation of Lox from the Crafting Interpreters book.
-
Concise language to write an interpreter for?
My implementation can be found here: https://github.com/mrjameshamilton/klox
What are some alternatives?
When comparing jasm and klox you can also consider the following projects:
proguard-core - Library to read, write, analyze, and process java bytecode
riscv-asm - risc-v assembly language
Grasmin - Groovy AST Transformation to allow writing Jasmin code (JVM bytecode) directly on groovy files
proguard-assembler - Assembler and disassembler for Java class files
kotlin-native - Kotlin/Native infrastructure
YAIL - Programming language where you can code using emojis 😌