PyPy是一款Python語言解釋器,他可以對Python代碼進(jìn)行動態(tài)編譯,可以顯著提高Python代碼的執(zhí)行速度。yPy比CPython是更加靈活,易于使用和試驗(yàn)。
軟件說明:
PyPy是Armin Rigo開發(fā)的,Python語言的動態(tài)編譯器,是Psyco的后繼項(xiàng)目。PyPy的目的是,做到Psyco沒有做到的動態(tài)編譯。
PyPy開始只是研究性質(zhì)的項(xiàng)目。但是開發(fā)非常成熟,在2007年中旬發(fā)布了1.0 Release版本后,大家關(guān)注的焦點(diǎn)是,能否在2008年出現(xiàn)可供生產(chǎn)環(huán)境使用的版本。
PyPy還提供了JIT編譯器和沙盒功能,因此運(yùn)行速度比CPython要快,以及可以安全的運(yùn)行一些不被信任的代碼。PyPy還有一個(gè)單獨(dú)的支持微線程的版本。
PyPy是作為Specific Targeted Research Projects(特定領(lǐng)域研究項(xiàng)目)從2004年12月到2007年3月,開始接受歐盟的援助。
實(shí)現(xiàn)原理:
PyPy的第一部分:用Python實(shí)現(xiàn)的Python
其實(shí)這么說并不準(zhǔn)確,準(zhǔn)確得說應(yīng)該是用rPython實(shí)現(xiàn)的Python,rPython是Python的一個(gè)子集,雖然rPython不是完整的Python,但用rPython寫的這個(gè)Python實(shí)現(xiàn)卻是可以解釋完整的Python語言。
PyPy的第二部分:編譯器
這是一個(gè)編譯rPython的編譯器,或者說這個(gè)編譯器有一個(gè)rPython的前端,目前也只有這么一個(gè)前端,不過它的后端卻是不少,也就是說這個(gè)編譯器支持許多的目標(biāo)語言,比較重要的有:C,CIL,Javascript