LLVM
VM的概念越来越成为潮流了,一个称之为 LLVM 的VM带来了一种新的概念。http://llvm.cs.uiuc.edu/
在 JVM 或者 .NET 的世界中,VM其实是一个面向对象的强类型的虚拟机,而不是一个面向内存的虚拟机,这样的虚拟机与CPU的级别还相差较大。而传统的CPU还是典型的冯- 诺伊曼体系结构的计算环境,在这样的环境中,最为典型的还是寄存器-内存的基本模型。没有对象的概念,只有内存。
LLVM 作为一个虚拟的冯-诺伊曼机,其距离显然相对于 JVM 或者 .NET 来说,要更直接得多。 所以,JVM 如果再基于 LLVM 之上,未尝不是一种很好地实现方式。与JIT相关的部分将更多的在LLVM上完成,让JVM更多的定位在一个对象化的JVM之上。
而且基于 LLVM,可以更加简化的讲各种其他的语言翻译成机器语言,例如 Haskell这样的语言,如果翻译成为LLVM的话,那么,就可以充分的利用 LLVM 的JIT技术,从而获得高效的执行。
从这个角度上来看,抽象本身就是一种很好的代码服用,通过对现有的复杂世界进行抽象,从而定义一个抽象层(在这里时VM),把各种复杂的细节进行屏蔽。再在这个抽象层上进行更高层次的思考、开发。这个远比单纯的对象抽象带来的复用带来更高的价值。
0 Comments:
张贴评论
<< Home