补全:语义是否合法

补全 valid:碰到没定义的名字要判不合法。 贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格分隔的 token,从左到右求值(无优

开始练习 →

补全:不合法就报错

补全 compile_run:不合法时交回 ["ERROR"]。 贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格

开始练习 →

补全:取端到端末值

补全 result:端到端跑完最后一次 print 的值。 贯穿本节的小语言(判题机没 gcc,这是它的确定模型,见 spine.py):每行一条语句——set 名 = 表达式 或 print 表达式;表达式是空格分隔的 token,从左到

开始练习 →

真机交付语言看什么

在真机上交付你的小语言,判分主要看【0】。 (判分只看你在受控容器里的真机产物,纯本机、纯 Python,没有 gcc、不碰公网。)

开始练习 →

跑通给定程序输出几

真机:~/lang/prog.txt 内容为 set x = 6 / set y = x + 4 / print y * y。用 python3 ~/lang/lang.py --run 跑,最后一行 最后 = ? 是几? (判分只看你在受

开始练习 →

查:最后 print 的值

场景:~/lang/lang.py 是一门能跑的小语言解释器,~/lang/prog.txt 是一段程序。 任务:跑 python3 ~/lang/lang.py --run,读它报的 最后 = N(最后一次 print 的值),到 ~/对

开始练习 →

查:一共几条语句

场景:同一门解释器,~/lang/prog.txt 里有若干行语句。 任务:跑 python3 ~/lang/lang.py --stat,读它报的 语句 = N,到 ~/对照表.txt 查 N 对应的标记填进来。 (判分只看你在受控容器里

开始练习 →

查:几条 print

场景:同一门解释器,~/lang/prog.txt 里 set 和 print 混在一起。 任务:跑 python3 ~/lang/lang.py --stat,读它报的 print = N,到 ~/对照表.txt 查 N 对应的标记填进来

开始练习 →

查:几个未定义变量

场景:~/lang/prog.txt 里有变量用了却没先 set 定义。 任务:跑 python3 ~/lang/lang.py --check,读它报的 未定义 = N,到 ~/对照表.txt 查 N 对应的标记填进来。 (判分只看你在受

开始练习 →

修:词法把数字看错

场景:~/lang/lang.py 的 val 把「是不是数字」判成了 isalpha(本该 isdigit),数字都被当成变量取到 0,结果全错。 任务:把它改回 isdigit,让 --run 的 最后 = N 等于预期值。改好运行 ~

开始练习 →