Parser

Elzopie

Neues Mitglied
Implementationsregeln:
Add ::= Mul [PLUS Add]
Mul ::= INT [MAL Mul]

Aufgabe: Betrachte die Klasse Pruefer. Untersuche die Methode parseInt und erläutere für jede Code-Zeile, wie sie die obige Implementationsregeln umsetzt.


Kann jemand mir bitte das erklären?
Danke
 

Anhänge

  • Code-Vergleich-gesamt.pdf
    1,2 MB · Aufrufe: 11

Barista

Top Contributor
Es handelt sich um eine Grammatik in Backus-Naur-Form.

Die beiden Zeilen sind sogenannte Produktionsregeln.

Add benutzt Mul.

Also zuerst Mul.

Mul ist definiert durch ein verpflichtend auftauchendes INT, optional gefolgt von MAL Mul.

INT steht sicher für eine ganze Zahl.

MAL steht für Multiplikation(deutsch).

Danach folgt Mul rekursiv, Mul ist durch Mul selbst definiert.

Mul könnte also erfüllt werden durch:


INT

INT MAL INT

INT MAL INT MAL INT

uns so weiter.


Add ist definiert durch ein verpflichtend auftauchendes Mul (also die Beispiele oben kann man hier einsetzen), gefolgt von einem PLUS Add.

PLUS steht sicher für Addition.

Add ist wiederum rekursiv definiert.


Üblicherweise dient die Aufteilung in zwei Produktionsregeln der Abbildung des Operator-Vorrangs.

In der Aufgabe wird von Implementationsregeln gesprochen, also verwende den Begriff Implementationsregel statt Produktionsregel.

Um die gestellte Aufgabe zu lösen, müsstest Du vorher etwas über formale Sprachen gelernt haben.
 

Barista

Top Contributor
Aufgabe: Betrachte die Klasse Pruefer. Untersuche die Methode parseInt und erläutere für jede Code-Zeile, wie sie die obige Implementationsregeln umsetzt.

Ich habe mal die Methode parseInt in der Klasse Pruefer angesehen.

Meiner Meinung nach ist die Frage sinnlos, weil INT nicht in der Grammatik definiert wird.

Vielleicht will Dich jemand hereinlegen.
 

Neue Themen


Oben