怎么知道 VM 对不对

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

开始练习 →

五段程序的参考输出

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

开始练习 →

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

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

开始练习 →

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

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

开始练习 →

实现 3/5:函数与帧

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

开始练习 →

实现 4/5:闭包

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

开始练习 →

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

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

开始练习 →

真机上先看什么

拿到一个 .py 文件要读它的字节码,第一步是【0】。

开始练习 →

从 dis 的一行里认东西

dis 打出来的一行长这样。先在这里练怎么抠出偏移、指令名、操作数和括号里的说明: line = " 28 POP_JUMP_FORWARD_IF_FALSE 2 (to 34)" w =

开始练习 →

f 里读了几次局部变量

场景:~/程序/程序.py 里有几个小函数。对照表列了八个数。 任务:反汇编函数 f,数一数 LOAD_FAST(读局部变量)这条指令出现了几次,到对照表里查这个数对应的标记。 可操作范围:只在分给你的这台实验机上操作。可以改家目录里的任何

开始练习 →