R GReQL Checker (JACK3): Unterschied zwischen den Versionen
K (LGlaser verschob die Seite R GReQL Checker nach R GReQL Checker (JACK3)) |
|
(kein Unterschied)
|
Version vom 4. Januar 2024, 15:06 Uhr
Der statische Checker prüft den eingegebenen Programmcode auf statische Eigenschaften und verwendet dazu Abfragen auf dem Syntaxgraphen. Die Checks werden für diesen Checker regelbasiert in einer textuellen Notation konfiguriert. Für die Abfragen auf dem Syntaxbaum wird die Sprache GReQL verwendet.
Aufbau
Die verschiedenen Konstrukte der Sprache R werden durch eine GReQL-Grammatik definiert. Diese unterscheidet sich in Knoten und Kanten. Die R-GReQL-Grammatik ist typisiert und hierarchisch aufgebaut. Beispielsweise is "AssignmentOperator" die Oberklasse von Left- bzw. RightAssignmentOperator, welche wiederum von den spezifischen Zuweisungsoperatoren die Oberklassen sind. Dadurch lassen sich allgemeinere Abfragen erstellen, in denen nach dem Vorkommen eines (beliebigen) Zuweisungsoperators statt nach mehreren spezifischen gefragt wird.
Auswertung eines Regelsatzes
Bei der Durchführung des statischen Checks wird zunächst der abstrakte Syntaxgraph der abgegebenen Lösung erzeugt und anschließend alle Regeln angewendet. Alle erzeugten Fehlernachrichten werden als Ausgabe des statischen Tests gesammelt. Die vergebene Punktzahl ergibt sich aus den Punkten der einzelnen Regeln, wobei die Gesamtsumme der Punkte in der Regeldatei stets auf 100 normiert wird. Tritt während des Checks ein technischer Fehler auf, wird der Check abgebrochen und die Lösung entsprechend markiert.
Einsetzen
Durch das Klicken auf den Button Statischer Testfall wird ein statischer Test erzeugt und ein Fenster öffnet sich. Dort lassen sich die folgenden Einstellungen vornehmen:
- Name: Name des Testfalls.
- GReQL Regel: Hier können die aus Jack2 bekannten GReQL-Regeln angegeben werden. XML-Sonderzeichen dürfen nicht mehr wie in Jack2 escaped werden. Über den Button Regel hinzufügen können mehrere GReQL hinzugefügt werden. Diese Regeln sind miteinander verodert, d.h. wenn eine der Regeln zutrifft wird das entsprechende Feedback ausgegeben.
- Regelart: Hier kann man zwischen Absence und Presence wählen. Presence fordert, dass die obige GReQL-Regel erfüllt wird und Absence fordert, dass die obige GReQL-Regel nicht zutrifft.
- Punkte: Die Anzahl der Punkte, die entweder aufaddiert oder abgezogen werden.
- Punktemodus: Hier kann zwischen Deduction (abziehen) und Gain (aufaddieren) gewählt werden.
- Feedback (im Fehlerfall): Das Feedback wird dem Lernenden angezeigt, wenn dieser Test fehlschlägt.
In diesem Beispiel soll der statische Checker kontrollieren, ob der Lernenden die mean-Funktion von R benutzt hat. Dafür wird zunächst die GReQL Regel beschrieben, die kontrolliert, ob in der Abgabe die Funktion enthalten ist. Wenn diese in der eingereichten Lösung ist bekommt der Lernende 40 Punkte vom statischen Checker für seine Lösung. Wenn diese nicht in der eingreichten Lösung vorkommt wird das Feedback ausgegeben.