Seite 1 von 1

Übungsblatt 1

Verfasst: 5. Nov 2013 15:08
von Julian Oppermann
Im AST für Aufgabe 1.3 fehlen leider die let-Command-Knoten. Nehmen Sie bitte die Variablen als definiert an, oder fügen Sie die erforderlichen Anweisungen einfach in das Triangle-Programm ein.

Re: Übungsblatt 1

Verfasst: 19. Nov 2013 14:46
von Erich
Hallo allerseits,

könnte es sein, dass sich in der lexikalischen Grammatik in der Aufgabe 1.8 ein Fehler eingeschlichen hat?

Wir haben die Produktion:

XLiteral ::= 0x(Digit)+

sollte es bei Hexadezimalzahlen aber nicht eher so aussehen:


XLiteral ::= 0x(Digit|AtoF)+ ? ( Wobei AtoF alle Buchstaben von 'a' bis 'f' repräsentiert ).


MfG

Erich

Re: Übungsblatt 1

Verfasst: 19. Nov 2013 14:53
von Jens Huthmann
Da habe ich beim überarbeiten der Aufgabe nicht aufgepasst. :roll:
Das XLiteral soll tatsächlich kein hexadezimaler Wert sein, sondern irgend ein neues Format, was zufällig auch mit 0x beginnt.

Für die eigentliche Idee der Aufgabe ist es nicht wichtig das es hexadezimal ist.

Re: Übungsblatt 1

Verfasst: 14. Feb 2014 13:20
von simon.r
In der Aufgabenstellung und Musterlösung für die Aufgabe 1.7 ist jeweils davon die Rede, dass "Substitution" nicht verwendet werden soll, aber was genau ist damit eigentlich gemeint? Der Begriff taucht laut PDF-Suchfunktion kein einziges Mal in dem entsprechenden Foliensatz auf...

Re: Übungsblatt 1

Verfasst: 14. Feb 2014 13:31
von Julian Oppermann
Das bezog sich auf die Grammatiktransformation "Ersetzen von Nichtterminalsymbolen" (Folie 2-26).

Oder auf "Code-Ebene": Wenn Sie sehen, dass eine parseX()-Methode mehr oder weniger trivial ist (bspw. nur ein accept(x) enthält), sollten Sie in der Aufgabe trotzdem den Aufruf der parseX() hinschreiben.

Also

Code: Alles auswählen

parseX() {accept(x);}

parseY() {
  ...
  parseX();
  ...
}
statt

Code: Alles auswählen

parseY() {
  ...
  accept(x);
  ...
}