Chinaunix
标题:
PyPy文档-3
[打印本页]
作者:
niexining
时间:
2009-08-11 17:34
标题:
PyPy文档-3
如何读PyPy源码
PyPy由较为独立的几个块组成,从下面选择最吸引你的部分:
--pypy/interpreter 这里是
字节码解释器
,包含:pyopcode.py
字节码调度器
eval.py,pyframe.py 代码对象和框架function.py, argument.py 函数对象和参数传递baseobjspace.py
对象空间
的接口定义module.py,mixedmodule.py 模块typedef.py
字节码解释器
支持的核心类型的定义
--pypy/interpreter/astcompiler 这里是编译器,包含一个去除了bug, 可以被翻译的CPython编译器包的修正版。PyPy 0.80版以后,编译器和
语法分析器
就可以被翻译了,产生的二进制软件交互使用起来更好玩了。
--pypy/objspace/std 这里是
标准对象空间
。 主文件是objspace.py. 每种类型都对应一个xxxtype.py和xxxobject.py, 分别是该类型的定义和(默认的)
执行时行为
--pypy/objspace 这里是一些其它
对象空间
:thunk对象空间, trace对象空间 和 flow对象空间(流对象空间)。其中,
流对象空间
能在
字节码解释器
运行时构建
控制流图
。
--pypy/translator 这里是代码分析和生成工具。如果你从这里开始读源文件,就容易跟踪各个翻译阶段的相应代码段。
--pypy/annotation 这里有用于类型
注解
的数据模型,会被
控制流图
用到。
控制流图漫步者
在pypy/annotation/annrpython.py里。
--pypy/rpython 这里是RPython
类型器
的代码。这个
类型器
把
注解
过的
控制流图
转变成
C
代码的样子,然后翻译就变得简单了。pypy/rpython/rtyper.py里的工具会控制这个转变过程pypy/rpython/lltypesystem/lltype.py里是会被用到的
对象模型
每个RPython类型对应一个rxxx.py, 给定它的
低级函数
--pypy/rlib 这里是RPython的标准库,里面的东西会被rpython用到。
原文网址:
http://codespeak.net/pypy/dist/pypy/doc/getting-started-dev.html#start-reading-sources
本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u1/54441/showart_2024700.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2