
编译器
uefi_artisan
这个作者很懒,什么都没留下…
展开
-
python 语法树生成过程
直接上代码,语法树在C语言里面,就是这个样子:typedef struct _mp_parse_t { mp_parse_node_t root; struct _mp_parse_chunk_t *chunk;} mp_parse_tree_t;先行知识:语法(分析)树可以以图形化的方式告诉我们一个start symbol 如何产生(drive) 一串字符, 如果原创 2016-07-08 23:02:24 · 8704 阅读 · 0 评论 -
python byte code 的生成以投放到虚拟机的过程
当我们在python shell 下面输入1+1, shell 会返回一个2给我们,那具体过程是什么样的呢?如果打开源代码,其思路是非常清晰的: // parse mp_parse_tree_t parse_tree = mp_parse(lex, input_kind); // compile mp_obj_t module_fun = mp_原创 2016-07-17 15:40:20 · 777 阅读 · 0 评论 -
python语言的本质-- 从bytecode 到虚拟机
先得到type ,然后执行type里面的成员函数call. // get the type mp_obj_type_t *type = mp_obj_get_type(fun_in); // do the call if (type->call != NULL) { return type->call(fun_in, n_args, n_kw,原创 2016-07-12 20:03:44 · 913 阅读 · 0 评论 -
编译器之语义分析
semantic: 语言的意义编译器的语义分析阶段将变量与其用法关联起来,检查每个表达式是否有正确的类型,还有, 将抽象的语法翻译成更简单的形式以方便生成机器语言(码)。符号表符号表将标识符和其类型、位置关联起来,当我们去处理变量,函数的声明时,就是将这些信息组织(绑定)起来,放在表里,当需要知道这些函数,变量的意义时,就去这个表里查。 每一个局部变原创 2016-07-20 19:36:38 · 3892 阅读 · 0 评论