Seite 1 von 1

AST

Verfasst: 17. Feb 2013 17:21
von Martek
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

Re: AST

Verfasst: 17. Feb 2013 19:48
von LordHoto
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
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.

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.

Re: AST

Verfasst: 18. Feb 2013 15:51
von Martek
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.

Re: AST

Verfasst: 18. Feb 2013 18:54
von LordHoto
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.
So weit ich weiß, wurde das in den Folien nicht gezeigt.

Re: AST

Verfasst: 19. Feb 2013 11:24
von JanPM
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

Verfasst: 19. Feb 2013 14:46
von Martek
Ja denke auch dass das in der MuLö falsch ist

Re: AST

Verfasst: 19. Feb 2013 15:20
von LordHoto
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?
Die Semikoli hinter dem letzten "end", "i := i + 1", "j := j + 1", "val[j+1] := buf" sollten da nicht hingehören, stimmt.

Re: AST

Verfasst: 20. Feb 2013 11:05
von JanPM
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)?

Re: AST

Verfasst: 20. Feb 2013 11:07
von Jens Huthmann
Ja, eindeutige Abkürzungen sind kein Problem.

Re: AST

Verfasst: 20. Feb 2013 11:39
von Martek
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.
Und was ist damit? Müssen wir den AST für Declarations kennen? In den Folien findet sich dazu ja leider nichts

Re: AST

Verfasst: 20. Feb 2013 11:49
von Jens Huthmann
Auf Seite 109 bzw. 110 des Buchs sind diese angegeben.

Re: AST

Verfasst: 20. Feb 2013 11:52
von Martek
Aber es hat doch nicht jeder das buch :shock:

Re: AST

Verfasst: 20. Feb 2013 14:53
von jonas
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.

Re: AST

Verfasst: 20. Feb 2013 14:59
von Jens Huthmann
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.
Ja, das ist falsch. Da müßte anstelle SingleCommand immer Command stehen.

Re: AST

Verfasst: 20. Feb 2013 16:22
von LordHoto
Martek hat geschrieben:Aber es hat doch nicht jeder das buch :shock:
Das Buch sollte in der Bibliothek Informatik vorhanden sein.