免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2700 | 回复: 0
打印 上一主题 下一主题

pypy文档-1 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-10 19:47 |只看该作者 |倒序浏览

                                                目标
我们的目标是:
(1) 实现一个通用的动态脚本语言翻译和支持框架; 侧重于把语言的语法执行彻底分离
(2) 利用上面的框架方便,灵活,高速地执行python代码; 不用底层细节编码就能加入新的高级特性
实现这种分离以后,我们让python和其它动态语言的执行更骠悍: 更强的跨平台性,更好的内存和线程模块,代码优化能力,甚至能为动态语言自动生成"及时编译器"
PyPy是翻译框架
传统的解释器是用目标平台语言写的,例如,用C, Java 或者 C# (CPython, Jython, IronPython).执行的时候,应用程序的源代码被对应到目标环境。.NET框架提供的却是更高层的机制: 它把源代码转成执行码, 供语言执行器使用。Java虚拟机一定程度上也在这样做。.NET的目标是成为"包容一切"的环境。
PyPy尝试的是一种更具野心的道路。我们使用的是高层语言Python的一个子集,叫做RPython; 我们RPython写一些与底层基本独立的简单解释器。这样,只要加入合适的底层信息,并经过配置, 我们的翻译框架就能生成定制的虚拟机。
不需要每种动态语言,每种平台都去开发解释器!
PyPy 要让这些可以自由改变:
L : 语言,语言可以演变,或整个被替换O : 优化,可以按照各种模型,各种权衡考虑去优化翻译过程,得到各种特殊代码。P : 平台,可以写新的翻译器后端,适应不同的物理和虚拟平台。
.NET 强制的是单一的,标准的目标环境(P=1); 这样O就可以小一些。然而我们认为没有必要限制成单一公共平台。PyPy只关注语言的执行, 不关注也不依赖平台的标准化。
用一种语言无关的方式产生"及时编译器"是最具野心的目标部分; 这可不仅仅是把源解释器变成一个目标平台的解释器。这属于语言执行的领域,涉及的东西复杂,普遍认为很有挑战性。
PyPy是Python解释器
我们开发翻译框架的主要动机,是提供一个全新的,可定制的,高速,方便的Python执行器,工作在更多平台上,与更多平台交互,并能快速引入新的高级语言特性。
用RPython写的这个解释器更简单,从某些角度看,比Cpython容易理解。用PyPy我们能很快体验一些执行技术,例如: PyPy解释器提供"懒计算对象"(lazily computed objects, computing only when an operation is performed on them;); CPython需要全局改动才能支持这个功能。再比如: 垃圾回收技术。改变Python的垃圾回收器,让它不再按照引用次数工作。这在CPython里会是个浩大的工程,而在PyPy里,只是翻译框架里的小问题,不必惊动解释器源代码。
原文网址:
http://codespeak.net/pypy/dist/pypy/doc/architecture.html
               
               
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/54441/showart_2023785.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP