AST

Martek
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 28. Sep 2009 15:48
Wohnort: Darmstadt
Kontaktdaten:

AST

Beitrag 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
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: AST

Beitrag 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.
Compiler 1 Tutor WS 12/13

Martek
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 28. Sep 2009 15:48
Wohnort: Darmstadt
Kontaktdaten:

Re: AST

Beitrag 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.
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: AST

Beitrag 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.
Compiler 1 Tutor WS 12/13

JanPM
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 105
Registriert: 20. Mär 2009 14:25
Wohnort: Darmstadt

Re: AST

Beitrag 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?

Martek
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 28. Sep 2009 15:48
Wohnort: Darmstadt
Kontaktdaten:

Re: AST

Beitrag von Martek »

Ja denke auch dass das in der MuLö falsch ist
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: AST

Beitrag 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.
Compiler 1 Tutor WS 12/13

JanPM
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 105
Registriert: 20. Mär 2009 14:25
Wohnort: Darmstadt

Re: AST

Beitrag 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)?

Jens Huthmann
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 192
Registriert: 10. Nov 2011 19:42

Re: AST

Beitrag von Jens Huthmann »

Ja, eindeutige Abkürzungen sind kein Problem.

Martek
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 28. Sep 2009 15:48
Wohnort: Darmstadt
Kontaktdaten:

Re: AST

Beitrag 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
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!

Jens Huthmann
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 192
Registriert: 10. Nov 2011 19:42

Re: AST

Beitrag von Jens Huthmann »

Auf Seite 109 bzw. 110 des Buchs sind diese angegeben.

Martek
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 28. Sep 2009 15:48
Wohnort: Darmstadt
Kontaktdaten:

Re: AST

Beitrag von Martek »

Aber es hat doch nicht jeder das buch :shock:
Wer aufgehört hat besser zu werden, der hat aufgehört gut zu sein!

jonas
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 177
Registriert: 5. Okt 2008 21:35
Wohnort: DA

Re: AST

Beitrag 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.

Jens Huthmann
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 192
Registriert: 10. Nov 2011 19:42

Re: AST

Beitrag 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.

LordHoto
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 135
Registriert: 14. Dez 2009 17:00

Re: AST

Beitrag von LordHoto »

Martek hat geschrieben:Aber es hat doch nicht jeder das buch :shock:
Das Buch sollte in der Bibliothek Informatik vorhanden sein.
Compiler 1 Tutor WS 12/13

Antworten

Zurück zu „Archiv“