怎么知道 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(读局部变量)这条指令出现了几次,到对照表里查这个数对应的标记。 可操作范围:只在分给你的这台实验机上操作。可以改家目录里的任何