简介
这篇文章是对tinypy的实现结构一个综述,虚拟机技术是一个非常迷人的技术,由于成熟的虚拟机一般非常庞大,动辄几十上百万代码,初学者难以入手(后来我发现lua也是非常好的学习项目,而且更加成熟),后来我无意中发现tinypy
这个项目,完成了对虚拟机技术的一次初窥,愈发对其感兴趣了,(我自己后来也实现了一个类似的项目minipy,有兴趣的同好可以移步https://github.com/xupingmao/minipy,有什么建议批评也欢迎指出),由于关于tinypy
的文档较少,所以我开始整理了这本源码笔记(开始只写了个头,进行简单介绍,后来实现的时候加深了理解,也觉得做事还是得有始有终,所以又继续写了,后面我还会写一系列文章介绍,直到整个笔记在结构上是完整的为止),希望对有兴趣研究的同学有所帮助。
tinypy官方网站是 http://tinypy.org,源代码在github上也维护了一套 https://github.com/philhassey/tinypy
如果只是想大概了解下tinypy的功能,可以参考前一篇文章 tinypy源码笔记——简单介绍
目录分析
cpython/ # CPython的扩展
doc/ # 文档
examples/ # 示例
modules/ # 扩展模块
tinypy/ # 语言的实现
./boot.py # 构建的启动文件
./tokenize.py # 词法分析器
./parse.py # 语法解析器
./encode.py # 代码生成器
./py2