- 论坛徽章:
- 0
|
如何读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 |
|