AST
AST
Eine kleine Frage zu ASTs: Warum ist in der Übung generell immer ein letCmd weggelassen worden wenn ein AST gezeichnet wurde. In der Abstrakten Syntax kommt das ja vor und eigentlich ist ein let ja auch wichtig für das Programm oder nicht? Konkret geht es um Übung 1.1 bzw 1.2
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!
Re: AST
Bei der 1.1 ist auch kein let im Triangle Sourcecode, daher darf dort das nicht im AST vorkommen. Bei der 1.2 wurde let in der Lösung beim Triangle Sourcecode wahrscheinlich (ausversehen) hinzugefügt, obwohl es nicht im AST vorhanden ist.Martek hat geschrieben:Eine kleine Frage zu ASTs: Warum ist in der Übung generell immer ein letCmd weggelassen worden wenn ein AST gezeichnet wurde. In der Abstrakten Syntax kommt das ja vor und eigentlich ist ein let ja auch wichtig für das Programm oder nicht? Konkret geht es um Übung 1.1 bzw 1.2
Generell hast du aber recht, wenn ein let vorhanden ist, muss es im AST auftauchen. Genau so wenn du einen AST damit hast, muss es beim Transformieren in Sourcecode auch wieder vorkommen.
Compiler 1 Tutor WS 12/13
Re: AST
Da ich es nicht finde, gibt es denn irgendwo in den Folien eine Definition für die Abstrakte Syntax von Declaration, weil es da ja auch Sequential Deklarations gibt und TypeDenoter etc. Aber wie das korrekt aussehen soll weiß ich eben nicht.
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!
Re: AST
So weit ich weiß, wurde das in den Folien nicht gezeigt.Martek hat geschrieben:Da ich es nicht finde, gibt es denn irgendwo in den Folien eine Definition für die Abstrakte Syntax von Declaration, weil es da ja auch Sequential Deklarations gibt und TypeDenoter etc. Aber wie das korrekt aussehen soll weiß ich eben nicht.
Compiler 1 Tutor WS 12/13
Re: AST
Hi, ich habe auch noch eine Frage zur Lösung der 1.2. Das Programm endet mit einem Semikolon, aber das end müsste doch reichen oder? Und in den begin ... end Blöcken enden die letzten Anweisungen teilweise mit einem Semikolon, zb das letzte i := i+1 in der while-loop. Hab ich da was falsch verstanden oder ist sind da zu viele Semikoli?
Re: AST
Ja denke auch dass das in der MuLö falsch ist
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!
Re: AST
Die Semikoli hinter dem letzten "end", "i := i + 1", "j := j + 1", "val[j+1] := buf" sollten da nicht hingehören, stimmt.JanPM hat geschrieben:Hi, ich habe auch noch eine Frage zur Lösung der 1.2. Das Programm endet mit einem Semikolon, aber das end müsste doch reichen oder? Und in den begin ... end Blöcken enden die letzten Anweisungen teilweise mit einem Semikolon, zb das letzte i := i+1 in der while-loop. Hab ich da was falsch verstanden oder ist sind da zu viele Semikoli?
Compiler 1 Tutor WS 12/13
Re: AST
Falls man in der Klausur einen AST zeichnen muss, darf man dann die Namen der Knoten abkürzen? Also statt "SimpleVname" schreiben "SimpleV." oder "Ident." statt "Identifier" usw (solange es halt noch eindeutig ist)?
-
- Endlosschleifenbastler
- Beiträge: 192
- Registriert: 10. Nov 2011 19:42
Re: AST
Ja, eindeutige Abkürzungen sind kein Problem.
Re: AST
Und was ist damit? Müssen wir den AST für Declarations kennen? In den Folien findet sich dazu ja leider nichtsMartek hat geschrieben:Da ich es nicht finde, gibt es denn irgendwo in den Folien eine Definition für die Abstrakte Syntax von Declaration, weil es da ja auch Sequential Deklarations gibt und TypeDenoter etc. Aber wie das korrekt aussehen soll weiß ich eben nicht.
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!
-
- Endlosschleifenbastler
- Beiträge: 192
- Registriert: 10. Nov 2011 19:42
Re: AST
Auf Seite 109 bzw. 110 des Buchs sind diese angegeben.
Re: AST
Aber es hat doch nicht jeder das buch 

Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!
Re: AST
Müsste in Foliensatz 02 lexparse bezüglich den ASTs ab Folie 66 bei den Regeln für "Command" nicht auf der rechten Seite konsequent "Command" statt "singleCommand" genutzt werden?
In let, while, if, .. kann man ja wohl mehr als nur ein einfaches Command verwenden - oder habe ich was total verpennt?
In der Grammatik (siehe zB Folie 60) werden ja z.B. geschachtelte if's erlaubt.
In let, while, if, .. kann man ja wohl mehr als nur ein einfaches Command verwenden - oder habe ich was total verpennt?
In der Grammatik (siehe zB Folie 60) werden ja z.B. geschachtelte if's erlaubt.
-
- Endlosschleifenbastler
- Beiträge: 192
- Registriert: 10. Nov 2011 19:42
Re: AST
Ja, das ist falsch. Da müßte anstelle SingleCommand immer Command stehen.jonas hat geschrieben:Müsste in Foliensatz 02 lexparse bezüglich den ASTs ab Folie 66 bei den Regeln für "Command" nicht auf der rechten Seite konsequent "Command" statt "singleCommand" genutzt werden?
In let, while, if, .. kann man ja wohl mehr als nur ein einfaches Command verwenden - oder habe ich was total verpennt?
In der Grammatik (siehe zB Folie 60) werden ja z.B. geschachtelte if's erlaubt.