TypeDenoter => Änderung der Grammatik?

null
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 168
Registriert: 21. Apr 2012 14:58

TypeDenoter => Änderung der Grammatik?

Beitrag von null » 13. Feb 2014 10:57

Hallo zusammen,

damit beliebig komplexe Typen in Triangle benutzt werden können, wurde die Klasse "Type" durch "TypeDenoter" ersetzt. Nun wird im abstrakten Sytanxbaum die Typinformation direkt abgespeichert (siehe S.164 im Buch).

Bedeutet dies, dass die abstrakte Grammatik auf Seite 13 nicht mehr vollständig ist und auch diese verändert werden muss? Das würde dann auch eine Modifizierung des Scanners bzw. des Parsers verursachen, da neue Tokens ins Spiel kommen.

Davon wird im Buch gar nicht gesprochen und auch auf den Folien habe ich keinen Hinweis gefunden, sodass ich mich frage, ob meine Vermutung überhaupt richtig ist. Muss die Grammatik geändert werden, damit ich die Typinformationen durch die konkreten TypeDenoter im AST speichern kann?

Vielen Dank
null

Julian Oppermann
Mausschubser
Mausschubser
Beiträge: 88
Registriert: 3. Mai 2013 19:32

Re: TypeDenoter => Änderung der Grammatik?

Beitrag von Julian Oppermann » 13. Feb 2014 11:52

Achtung, die Grammatik auf S. 13 im Buch ist für Mini-Triangle; da es dort nur die drei Typen Char, Boolean und Integer gibt, werden Typen einfach als Identifier geparst. Später, in der Kontextanalyse kann der Typ eines AST-Knotens als Wert einer Aufzählung gespeichert werden.

Die Triangle-Grammatik definiert eine kompliziertere Type-Denoter-Produktion (S. 397 im Buch), nämlich Identifier, array .. of sowie record ... end. Weil diese Typen geschachtelt sein können, wird die Darstellung des Typs eines AST-Knotens aufwändiger. Hier war nun die Idee, einfach eine Referenz zum Unterbaums der zugehörigen Typdeklaration zu speichern. Diese Entscheidung hat allerdings keinen Einfluss auf die Konstruktion des Parsers. Es ist eher genau anders herum: Die Sprachspezifikation wurde erweitert, dementsprechend auch der Scanner und Parser, und in Konsequenz auch die Typprüfung.

Minker
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 28. Sep 2009 16:11

Re: TypeDenoter => Änderung der Grammatik?

Beitrag von Minker » 14. Feb 2014 12:33

Wie genau müssen wir die Einschränkungen von Minitriangle kennen? Werden die Unterschiede in der Klausur abgefragt, oder genügt es, Triangle zu kennen?

mrzb6
Mausschubser
Mausschubser
Beiträge: 54
Registriert: 4. Okt 2010 21:50
Wohnort: Darmstadt

Re: TypeDenoter => Änderung der Grammatik?

Beitrag von mrzb6 » 14. Feb 2014 16:44

Ich schließe mich der Frage an, wie relevant die Unterschiede von Triangle und Mini-Triangle für die Klausur sind.

Julian Oppermann
Mausschubser
Mausschubser
Beiträge: 88
Registriert: 3. Mai 2013 19:32

Re: TypeDenoter => Änderung der Grammatik?

Beitrag von Julian Oppermann » 14. Feb 2014 17:06

Ich kann hier keine Aussagen zum Inhalt der Klausur machen. Mini-Triangle diente ja am Anfang der Vorlesung dazu, die grundlegenden Konzepte zu illustrieren, ohne Sie gleich mit der Fülle von Details von Triangle zu erschlagen. Diese Aufteilung in Mini-Triangle und Triangle ist meiner Meinung aber eher nach dem Ermessen der Autoren durchgeführt worden, und folgt nicht etwa einem allgemein gültigen Prinzip des Compilerbaus.

Antworten

Zurück zu „Archiv“