scalaclojurejvmjvm-languages

What assembler did Scala/Clojure use?


I've been doing some research about compilers (to be ran on JVM). And I've successfully found two assemblers which targets that.

However, the two I found, one is Jasmin, which not quite well maintained (last update in 2010). And the other,Krakatau, is kind of poor-documented.

I could help noticing that there are a lot of mature JVM languages. And I'm just wondering, what assembler did they use? Or did they just make full use of raw bytecodes? To my understanding, there is a lot more besides simple bytecode instructions. And it will be a lot easier using assembler also.

Are they any mature (well-maintained and well-documented) JVM assemblers out there? Or Do I just start from scratch, learn JVM basics?


Solution

  • Clojure uses the ASM library to generate bytecode directly. ASM is a very good and widely used library for this purpose.