交付:一键跑全部程序
场景:~/程序/ 里有六段程序(有的跑得通有的跑不通)。 任务:写一个 ~/批跑.sh:把 ~/程序/*.txt 逐个交给解释器跑,每段的标准输出存进 ~/输出/<名>.out(名字去掉
给解释器加一个内置函数
场景:~/解释器.py 目前没有任何内置函数;~/程序/示例.txt 用了 max。 任务:给解释器加一个内置函数 max(a, b):交回两个参数里大的那个;参数个数不是 2 报「参数个数不对「ma
修解释器里的 bug
场景:~/解释器.py 有一处 bug。~/测试/ 里七段程序,每段配一份 测试/期望/*.out(正确的输出),其中几段现在跑出来不一样。 任务:先跑一遍找出哪些不一样,再去解释器里定位、修好,让七
改程序,让输出和期望一样
场景:~/程序/账单.txt 应该打出 ~/期望.txt 里的两行,现在一跑就报运行时错误。 任务:读错误信息,改程序(只改错的地方),让它的输出和 期望.txt 一字不差、退出码 0。改好之后运行
错在哪个函数里
场景:~/程序/统计.txt 跑起来报运行时错误;解释器会打出调用栈(每层一行「在 …」,从外到内)。对照表列了八个名字。 任务:找出错误发生时最里面的那个函数(调用栈最后一行),到对照表里查它的名字
退出码是几
场景:~/程序/试试.txt 是一段程序。README 里写了退出码各代表什么。对照表列了八个数。 任务:用解释器跑它,看退出码是几,到对照表里查这个数对应的标记。 可操作范围:只在分给你的这台实验机
六个程序哪个跑不通
场景:~/程序/ 里有六段程序,其中一段跑不通。README 里写了怎么看退出码。对照表列了八个文件名。 任务:逐个跑,找出退出码非零的那个文件名,到对照表里查它对应的标记。 可操作范围:只在分给你的
跑一遍,最后打的是几
场景:~/解释器.py 是这门小语言的解释器,~/程序/账单.txt 是一段程序。对照表列了八个数。 任务:用解释器跑这段程序,看它最后一行打出的数是几,到对照表里查这个数对应的标记。 可操作范围:只
从退出码和两路输出里认结果
真机上跑一个程序会得到三样东西:标准输出、标准错误、退出码。先在这里练怎么分类: runs = [("14\n20\n", "", 0), ("&qu
解释器当命令行工具要多什么
判题机里的 run(src) 交回一个字符串;把它做成 python3 解释器.py 程序.txt 这样的命令行工具,至少要多三样:【0】。