Metascala 是使用 Scala 编写的极小 metacircular Java Virtual Machine (JVM)。Metascala 大约有 3000 行的 Scala 代码,但是是完整的 JVM,可以解析自己。使用 Scala 编写,编译为 Java 字节码,Metascala JVM 要求一个主机 JVM 才可以运行。
Metascala 的目的是创建一个 JVM 平台,使用 3000 行 Scala 代码编写,比 1,000,000 行的 C/C++ 代码更便捷更容易完成。Metascala 可以构成一个标准的实现 HotSpot,更容易实现一些有趣的特性,比如 continuations, isolates 或者 value classes。3000 行的代码可以让你:
字节码解析器,包括所有运行时数据结构
一个 stack-machine,作为 SSA 注册机制字节码转换器
一个自定义的 heap
实现部分的 JVM 原生接口