tinypy
文章平均质量分 64
一蓑烟雨17815
就职于阿里巴巴菜鸟网络,我的github主页 https://github.com/xupingmao
长期内推开发岗,有意请发简历至pingmao.xpm@cainiao.com,阿里经济体等你来!
展开
-
tinypy中缩进的处理
先贴上代码 主程序 def do_tokenize(s): global T T,i,l = TData(),0,len(s) T.f = (T.y,i-T.yi+1) while i < l: c = s[i]; T.f = (T.y,i-T.yi+1) if T.nl: T.nl = False; i = do_i原创 2014-01-02 22:18:11 · 768 阅读 · 0 评论 -
tinypy 语法分析过程
tinypy的文档真的很难找(也许是我搜索技术太烂了。。。),官方说它是一个python的子集,支持的功能如下: 1.类和单继承 2.可变参数和关键字参数的函数 3.字符串,列表,字典,数字 4.模块,列表解析 5.异常的回溯 6.一些内建函数 实现语法分析的源文件是parse.py tinypy采用了自顶向下算符优先分析法(Top Down Operator Preced原创 2014-01-20 18:01:43 · 1230 阅读 · 0 评论 -
tinypy源码笔记(二)——目录及构建分析
tinypy源码目录及构建过程分析原创 2016-07-09 18:04:39 · 647 阅读 · 0 评论 -
tinypy源码笔记(一)——简单介绍
据说python是最慢的脚本语言之一,因为python内核比较大,但是,要相信程序员不是因为使用XX语言而NB,而是XX语言有那些程序员而NB。还是从速度开始吧,python不是慢吗,那就让她快起来,pypy项目正在解决这个问题,而且她做的很好,pypy也是一个很有趣的项目,我从某本比较古老的书籍上读出pypy是为了提供更强的动态特性而不是更快的速度而诞生的,当时她的速度更cpython是天壤之别原创 2013-12-29 01:09:07 · 1930 阅读 · 0 评论 -
tinypy源码分析(四)——函数调用的实现分析
一、函数的分类在tinypy中,函数分三类 1. 内置函数(或者说C函数,builtin-function) 2. python函数,包括python的方法 3. 对象的实例化方法二、函数的结构体typedef struct tp_fnc_ { int type; struct _tp_fnc *info; int ftype; void *val; } tp_原创 2015-07-28 20:32:04 · 672 阅读 · 0 评论 -
tinypy源码笔记(三)——虚拟机启动过程以及字节码分析
启动过程直接开门见山好了,程序入口为vmmain.c的main函数,启动过程总结起来是以下四步 实例化虚拟机,分配内存,初始化根节点对象,初始化GC 编译,将python源文件编译成tpc字节码(python的字节码是pyc) 执行字节码 释放资源 具体代码分析如下int main(int argc, char *argv[]) { tp_vm *tp = tp_init(argc,argv原创 2016-08-15 21:54:36 · 604 阅读 · 0 评论 -
tinypy源码笔记(五)——异常处理
异常机制 异常指的是在程序运行过程中发生的异常事件,通常是由硬件问题或者程序设计问题所导致的。在Java等面向对象的编程语言中异常属于对象。 这是百度百科的引用,现代编程大部分都实现了异常机制,而早期语言比如C语言是没有异常机制的,需要程序员根据每个函数的返回值来判断程序是否正常,这样会带来下面这些问题 程序员忘记判断函数返回值 大量的异常判断使程序臃肿,难以理解和维护 异常的出现就是为了解决这原创 2016-10-20 21:13:48 · 422 阅读 · 0 评论