这要分两种情况,你想实现的是编译型的语言还是解释型的语言。
- 编译型的语言并不在意母语言是什么,因为最终是需要将语言生成机器码,例如采用 llvm 作为编译器后端,那生成 llvm 的中间码就可以了。
- 解释型的语言又分为直接引用 ruby 进行解释,还是用 ruby 写一个高效的解释器来执行解释,如果直接生成 ast 用 ruby 解释的话,ruby 本身的性能并不高,再直接用 ruby 进行解释,性能就更差了。
顺带一提 Rubinius,就是以 C++ 为基础,其他大部分代码都是 ruby 实现的 ruby 解释器,核心那部分的性能还是需要 C++ 来支撑一波。