免费注册 查看新帖 |

Chinaunix

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

PyPy文档-2 [复制链接]

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

                                PyPy的体系结构
作为一个极限编程项目,PyPy的体系经历多次演化,现在仍在演化中。但高层体系不变。有两个相对独立的子系统:Python解释器翻译框架
翻译框架
翻译工具系列把RPython程序变到多目标平台中的一种,一般来说,比Python低级的代码。方法是:逐步降低抽象程度,最后到了目标平台。
目前,我们支持两种特色的目标平台: --内存模型,和C类似,有结构体,有指针--面向对象模型,有类,类实例,方法。Java.NET虚拟机就是这样的。
翻译工具系列没有去处理RPython源程序或语法树,而是以代码对象作为输入。代码对象中定义对象的功能和行为。你可以这样想: 先前被导入的RPython程序"冻结"在了目标平台上。
翻译经过如下步骤:
--源代码中每个代码对象流对象空间转化成控制流图--控制流图注解器处理。注解器控制流图中每个变量的类型作了推断,考虑它们运行时的类型--RTyper利用注解器提供的信息把控制流图上的高层操作变成接近目标平台抽象层的操作--各种翻译选项被应用,例如内联stackless(没有递归深度限制的)并行,或给垃圾回收器插入代码--控制流图被转化成目标平台源代码,然后编译成可执行文件
这个过程更详细的描述在document about the translation process和论文 Compiling dynamic language implementations
Python解释器PyPy的Python解释器是用RPython写的,能执行全部Python语言。这个解释器行为上模仿CPython,包含以下主要部件:--一个字节码编译器,负责从用户的应用程序源代码产生Python代码对象--一个字节码评估器,负责解释Python代码对象--一个标准对象空间,负责产生和操作用户级Python对象
字节码编译器,在处理过程前期,通过一系列灵活的加工(标志器词法分析器语法分析器抽象语法树构造器字节码产生器),产生紧凑的字节码。字节码评估器解释这些字节码,它的大部分工作是把用户级对象的实际操作委派给对象空间标准对象空间可以被看作是内建类型的库,它定义了用户级对象,如整数,列表,和这些对象的操作,如加法,真假判断。
字节码评估器对象空间分离开意义重大,这增加了很大的灵活性。你就可以插入不同的对象空间,改变和丰富Python对象的行为。还有,流对象空间,一个更抽象的对象空间,允许我们重用字节码评估器,为我们的翻译框架服务。
原文网址:
http://codespeak.net/pypy/dist/pypy/doc/architecture.html
               
               
               
               
               
               

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP