先看清单

格子亮一个,筒里就叠一块或弹一块 压、压、压、合、合、取走 (每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block /

开始练习 →

栈每一步的样子

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_program(树 → 指令列表)、lis

开始练习 →

补全:BIN 和 PRINT

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_program(树 → 指令列表)、lis

开始练习 →

补全:跳转和作用域

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_program(树 → 指令列表)、lis

开始练习 →

补全:数栈的最大深度

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_program(树 → 指令列表)、lis

开始练习 →

帧是什么

本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DEFINE 名 弹栈、在当前层登记 STORE 名 弹栈、沿链改变量 B

开始练习 →

CALL 做什么

本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DEFINE 名 弹栈、在当前层登记 STORE 名 弹栈、沿链改变量 B

开始练习 →

RETURN 做什么

执行 RETURN 时 VM 做的是【0】。

开始练习 →

看帧的深度

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_program(树 → 指令列表)、lis

开始练习 →

错误里的调用栈

(每道题开头都有同一段:06 的词法/语法/show、Env、RunError;本条加的 compile_expr / compile_stmt / compile_block / compile_program(树 → 指令列表)、lis

开始练习 →