多如牛毛…
首先一类是前面回答提到的:用汇编写的runtime
其次一类是元循环runtime(metacircular runtime / metacircular evaluator / metacircular interpreter / metacircular VM):用自己实现自己。PyPy属于这一类。在这里写了一些:
用 JavaScript 写成的 JavaScript 解释器,意义是什么? - RednaxelaFX 的回答JavaScript的功能是不是都是靠C或者C++这种编译语言提供的? - RednaxelaFX 的回答
还有就是一大堆用别的高级语言实现的runtime,例如用D语言Go语言Rust语言之类的native语言或者像Java、Scala、C#、F#、Haskell之类的managed语言。这一类题主想要怎么看都可以——例如说如果选择了一个用C++实现的JVM,上面用Java实现了JavaScript,那这个“JavaScript Runtime”到底是用C++写的还是用Java写的还是应该两者都算上呢?见仁见智,题主想怎么看都可以。
其实喜欢写编译器/解释器/虚拟机/运行时的人还挺多的;有很多看似“非主流”的实现方式。
例如什么:
- 用Haskell写的Perl 6——Pugs <- 好吧这种做法挺正常的挺好的
- 用Smalltalk写的核心JVM——IBM J9 VM
- 用Ruby写的JVM——Ruva
- 用JavaScript(现在具体是TypeScript)写的JVM——Doppio
- 用C#写的JVM兼容层——IKVM
- 太多了无法穷举…