擅长:python、mysql、java
<p>你想实施什么?你的问题措辞很混乱(我知道英语可能不是你的母语)。</p>
<p>LLVM和PyPy都是成熟、有用的项目,但在这一点上并没有太多重叠。(在某一点上,PyPy可以生成LLVM字节码,该字节码是静态编译成解释器的,而不是C代码,但是它没有提供太多性能优势,不再受支持。)</p>
<P> PyPy允许您在RPython中编写解释器,并使用该描述作为生成本地代码解释器或JIT的描述;LLVM是用于构建编译器工具链的C++框架,该工具链还可以用于实现JIT。LLVM的优化器、代码生成和平台支持比PyPy的优化器、代码生成和平台支持要先进得多,但它不太适合构建动态语言运行时(有关原因的一些示例,请参见<a href="http://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html" rel="noreferrer">Unladen Swallow retrospective</a>)。尤其是,它在收集/使用运行时反馈(这对于使动态语言性能良好是绝对必要的)方面不如PyPy的基于跟踪的JIT有效。另外,LLVM的垃圾收集支持还有些原始,它缺乏PyPy自动生成JIT的独特能力。</p>
<p>顺便说一下,有两个Java实现构建在LLVM-<a href="http://vmkit.llvm.org/" rel="noreferrer">J3/VMKit</a>和<a href="http://icedtea.classpath.org/wiki/ZeroSharkFaq" rel="noreferrer">Shark</a>上。</p>
<p>你可以考虑看上周斯坦福大学的<a href="http://morepypy.blogspot.com/2011/03/bay-area-2011-tour-summary.html" rel="noreferrer">PyPy talk</a>;它提供了PyPy如何工作的相当不错的概述。Carl Friedrich Bolz的<a href="http://codespeak.net/svn/pypy/extradoc/talk/microsoft-jan-2011/talk.pdf" rel="noreferrer">presentation</a>还提供了VM实现状态的良好概述。</p>