الممثّلات


الممثِّل برنامج يأخذ حل الطالب ويُرجع تمثيلًا مُطبَّعًا له. ثم نستخدم هذه التمثيلات لتبسيط الملاحظات الآلية والتصنيف.

المثال أفضل ما يوضّح الممثِّلات. لنفترض أن طالبين قدّما حلّين لتمرين hello-world في Ruby:

# Student 1's submission
def self.hello(name = 'World')
  "Hello, #{name}!"
end
# Student 2's submission
def self.hello(nom = 'World')
  "Hello, #{nom}!"
end

على الرغم من أن كود هذين الحلّين مختلف (إزاحة مختلفة، وأسماء متغيرات مختلفة، وصياغة نصية مختلفة)، فإنهما في جوهرهما متماثلان. لذا بإنشاء تمثيل مُطبَّع لهما، يمكننا اعتبارهما متماثلين عند تقديم الملاحظات. وهذا يقلّل إلى حد كبير كمية الإرشاد المكرر الذي يجب أن يحدث.

كل مسار يحتفظ بممثِّل خاص به، مخصّص لتلك اللغة. ولا يوجد شكل موحّد للنتائج، فنحن نطلب فقط أن يكون المسار متسقًا داخليًا.

بناء ممثِّل

إذا كنت مهتمًا ببناء ممثِّل، فاطّلع على توثيق الممثِّل لمزيد من المعلومات.