从现象认类型错的原因
把四种现象和原因配对,打印四个字母:
把类型检查器跑起来
场景:~/src 下有一个类型检查器和若干 .t 源文件,说明写了怎么跑。 任务:把检查器跑起来,让它对这批文件报出类型错误,然后运行 ~/check(它会核对报出的错误数)。 范围:只在 ~/src 下你自己的文件里操作;答案是运行后拿到
一共报了几个错
场景:~/src 下的检查器会对所有 .t 文件报类型错。对照表列了八个数。 任务:跑检查器,数出一共报了几个类型错,到对照表里查那个数对应的标记。 范围:只在 ~/src 下你自己的文件里操作;答案是运行后拿到的一段标记。 提交:把 ~/
哪个文件有错
场景:~/src 下多数 .t 文件是干净的,只有一个有类型错。对照表列了八个文件名。 任务:跑检查器,看出哪个文件报了类型错,到对照表里查它对应的标记。 范围:只在 ~/src 下你自己的文件里操作;答案是运行后拿到的一段标记。 提交:把
错在第几行
场景:~/src/bad.t 里有一处类型错,检查器会报「bad.t:行号 …」。对照表列了八个数。 任务:跑检查器,看出 bad.t 的类型错在第几行,到对照表里查那个数对应的标记。 范围:只在 ~/src 下你自己的文件里操作;答案是运
把这处类型错改对
场景:~/src/bad.t 有一处「标注的类型和赋的值对不上」,说明写了该改成什么。 任务:把那一行改对(让值的类型对上标注),使检查器报错数降到 0。改好运行 ~/check。 范围:只在 ~/src 下你自己的文件里操作;答案是运行后
给缺标注的补上类型
场景:~/src 有一行缺了类型标注,检查器报「缺标注」,说明写了该补什么类型。 任务:给那一行补上正确的类型标注,使检查器不再报「缺标注」、错误数为 0。改好运行 ~/check。 范围:只在 ~/src 下你自己的文件里操作;答案是运行
检查器漏报了,修好它
场景:~/src 的检查器有 bug——某类类型错它放过了,明明有错却报 0。说明写了它漏了哪一类。 任务:把检查器改对,让它把该报的类型错都报出来。改好运行 ~/check(它用一个已知有错的文件核对)。 范围:只在 ~/src 下你自己
交付:报全一套文件的类型错
场景:~/src 给了半成品检查器,说明列了要补的一小段(类型比较)。 任务:把它补成能对一套 .t 文件报出全部类型错的检查器,让说明里的用例通过。补好运行 ~/check。 范围:只在 ~/src 下你自己的文件里操作;答案是运行后拿到
代码生成在做什么
一行高级式子,落到下面几条机器指令 取、取、算、存——一条展开成四条 编译器的「代码生成」这一步,做的是【0】。