if 怎么编译

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

开始练习 →

while 和 if 差在哪

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

开始练习 →

看编译出来的清单

(每道题开头都有同一段: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

开始练习 →

补全:编译 if(占位与回填)

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

开始练习 →

补全:编译 while

(每道题开头都有同一段: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

开始练习 →

VM 的主循环

格子亮一个,筒里就叠一块或弹一块 压、压、压、合、合、取走 本条的指令集(每条是一个元组): PUSH 值 把一个常量压栈 LOAD 名 把变量的值压栈 DEFINE 名 弹栈、在当前层登

开始练习 →

指令要不要带操作数放在哪

BIN + 这条指令没有写「加谁和谁」。它能工作是因为【0】。

开始练习 →

块作用域怎么在 VM 里做

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

开始练习 →