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