表示器是一类软件,它接收学生的解答,然后返回该解答的规范化表示。我们随后利用这些表示来简化自动反馈和分类流程。
用一个例子最能说明表示器的作用。假设有两名学生向 Ruby 的 hello-world 练习提交了两份解答:
# Student 1's submission
def self.hello(name = 'World')
"Hello, #{name}!"
end
# Student 2's submission
def self.hello(nom = 'World')
"Hello, #{nom}!"
end
虽然这两个解答的代码不同(缩进、变量名和字符串语法都不一样),但它们本质上是相同的。因此,通过为它们创建规范化的表示,我们就可以在提供反馈时将二者视为同一个解答。这极大地减少了需要进行的重复指导。
每个 track 都维护着自己的表示器,专用于该语言。输出没有统一标准:我们只要求同一个 track 内部保持一致。
如果你有兴趣构建表示器,请查阅表示器文档以获取更多信息。