实现 5/5:错误与差分验收

实现 5/5:错误与差分验收

(n08 五道题共用一段开头:06 的词法/语法/Env/RunError,五段验收程序 PROGS(和 06 的一样:14|20 / 10 / 81 / 11|12 / 错误:除以零),和 run_

阅读更多 →
实现 4/5:闭包

实现 4/5:闭包

(n08 五道题共用一段开头:06 的词法/语法/Env/RunError,五段验收程序 PROGS(和 06 的一样:14|20 / 10 / 81 / 11|12 / 错误:除以零),和 run_

阅读更多 →
实现 3/5:函数与帧

实现 3/5:函数与帧

(n08 五道题共用一段开头:06 的词法/语法/Env/RunError,五段验收程序 PROGS(和 06 的一样:14|20 / 10 / 81 / 11|12 / 错误:除以零),和 run_

阅读更多 →
实现 2/5:语句和控制流

实现 2/5:语句和控制流

(n08 五道题共用一段开头:06 的词法/语法/Env/RunError,五段验收程序 PROGS(和 06 的一样:14|20 / 10 / 81 / 11|12 / 错误:除以零),和 run_

阅读更多 →
实现 1/5:表达式的编译器和 VM

实现 1/5:表达式的编译器和 VM

(n08 五道题共用一段开头:06 的词法/语法/Env/RunError,五段验收程序 PROGS(和 06 的一样:14|20 / 10 / 81 / 11|12 / 错误:除以零),和 run_

阅读更多 →
五段程序的参考输出

五段程序的参考输出

(n08 五道题共用一段开头:06 的词法/语法/Env/RunError,五段验收程序 PROGS(和 06 的一样:14|20 / 10 / 81 / 11|12 / 错误:除以零),和 run_

阅读更多 →
怎么知道 VM 对不对

怎么知道 VM 对不对

验收一个「编译 + VM」,最实在的办法是【0】。

阅读更多 →
编译器和 VM 谁先写

编译器和 VM 谁先写

从零实现「编译 + VM」,最稳的顺序是【0】。

阅读更多 →
补全:对照两个 VM

补全:对照两个 VM

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_p

阅读更多 →
补全:找出所有函数的代码对象

补全:找出所有函数的代码对象

(Python 自己就是「编译成字节码、由 VM 执行」:dis.get_instructions(f) 列出函数 f 的指令,每条有 opname(指令名)和 argval(操作数);f.__cod

阅读更多 →