Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Cornelius Lichtenberg Geändert vor über 7 Jahren
1
HAG 1 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Compilerbau Seminar Attributgrammatiken höherer Ordnung Gunter Ohrner
2
HAG 2 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Motivation Idee / Prinzip Definitionen Beispiel Attributauswertung Wohldefiniertheit Schlussbemerkungen
3
HAG 3 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Motivation
4
HAG 4 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner ● Herkömmliche Attributgrammatiken: ● geeignet für Modellierung vieler textverarbeitender Prozesse und Systeme ● Aber: ● Prozesse, bei denen Ausgangswort in verschiedenen Stufen in Zielwort über-setzt wird schwer darstellbar ● Struktur des Syntaxbaumes abhängig von zugrunde liegender CFG, für weitere Verarbeitung häufig ungünstig ● Übersetzungsprozesse mit „dynamischer Semantik” nicht gut modellierbar Motivation 1
5
HAG 5 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Motivation 2 ● Deswegen: Attributgrammatiken höherer Ordnung ● Erweiterung herkömmlicher Attributgrammatiken ● Attributgrammatiken „höherer Ordnung” in Anlehnung an Funktionen „höherer Ordnung”: ● Parsebäume können in Attributvariablen berechnet werden ● Änderung / Anpassung des Ableitungsbaumes während Attributauswertung somit möglich!
6
HAG 6 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Idee / Prinzip
7
HAG 7 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Ableitungsbäume in Attributvariablen – 1 1. Einführung von lokalen Attributen bei Attributgrammatiken 2. Einführung von nicht-terminalen Attributen ● Nichtterminal-Attribute: ● Entsprechung von Attributen bei Nichtterminal-Symbolen („Zwitter”) ● gelten bei Berechnung des Ableitungsbaumes als NULL-Nichtterminale, (d.h. Nichtterminale, für die nur leere Ableitung existiert) Blätter im Ableitungsbaum ● können Ableitungsbäume als Attributwerte zugewiesen bekommen erweiterung des Ableitungsbaumes
8
HAG 8 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Ableitungsbäume in Attributvariablen – 2 ⇨ NTA
9
HAG 9 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Ableitungsbäume in Attributvariablen – 3 Problem:Darstellung von Ableitungsbäumen als Attributwerte Erinnerung:Attributwerte nicht auf Zahlen beschränkt („durch Funktionen berechenbare Objekte”) Lösung:Repräsentation von Ableitungsbäumen durch Objekte geeig- neter mathematischen Struktur Einer CFG G wird eine Signatur G = zugeordnet, wobei jeder Produktion aus G eine Funktion f aus G entspricht. ⇨
10
HAG 10 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Ableitungsbäume in Attributvariablen – 4 ⇨ Darstellung des Ausdrucks „815 ⋅ 47” als Strukturbaum und als Objekt der zugeordneten Struktur.
11
HAG 11 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Definitionen
12
HAG 12 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributgrammatiken mit lokalen Attributen – 1 Ergänzung zur Definition einer AG aus der Vorlesung:
13
HAG 13 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributgrammatiken mit lokalen Attributen – 2 S A erg1.0erg2.0 lok einattr.0 Produktion mit lokalem Attribut: Abhängigkeitsgraph der Produktion
14
HAG 14 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Nichtterminal-Attribute ● AG HAG: Nichtterminal-Attribute ● Verwendung lokaler Attribute als Nichtterminal-Symbole ● verhalten sich beim Erstellen des Ableitungsbaumes wie NULL-Nichtterminal-Symbole (ex. nur leere Produktion N, NTAs dadurch zunächst Blätter im Ableitungsbaum) (virtuelles Nichtterminal) ● können während der Attributberechnung einen Ableitungsbaum t aus einer Struktur mit Signatur G zugewiesen bekommen ● der ursprüngliche Ableitungsbaum wird so an Position des NTAs erweitert (instantiiertes Nichtterminal)
15
HAG 15 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Vollständigkeit von HAGs ● Vollständigkeit einer Attributgrammatik höherer Ordnung: ● alle NTA einer Produktion lokale Attribute ● alle NTA in Produktionen auf rechten Seiten ● ein NTA einer Produktion nie Funktionsparameter ● alle Zuweisungen zu NTAs korrekt getypt
16
HAG 16 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel
17
HAG 17 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 1 ● Beispiel: ● Attributgrammatik höherer Ordnung für Berechnung einfacher arithmetische Ausdrücke ● Auswertungsreihenfolge der Operatoren vor jeder Berechnung definierbar ● Idee: ● berechne anhand einfacher Grammatik Ableitungsbaum für Ausdruck ● berechne aufgrund Operatorprioritäten während Attributauswertung angepassten Ableitungsbaum t' ● Zuweisung von t' zu einem Nichtterminal-Attribut ursprünglicher Ableitungsbaum wird erweitert ● Fortsetzen der Attributauswertung
18
HAG 18 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 2 Idee: zwei Kellerspeicher zum Aufbau des fertigen Ausdrucks merke dir Operatoren und Prioritäten auf Stack 1, speichere und gruppiere Operanden auf Stack 2
19
HAG 19 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 3
20
HAG 20 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 4 Abkürzung für
21
HAG 21 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 5
22
HAG 22 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributauswertung
23
HAG 23 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributauswertung – Begriffe Attributvariablen Begriffe: ● effektiv berechenbar: nicht (indirekt) von sich selber abhängig ● bereit für die Auswertung: bei definierender Attributgleichung bereits alle Funktionsparameter ausgewertet ● Wohldefiniertheit einer AG: gdw. alle Attribute effektiv berechenbar und Ableitungsbaum hat nur endliche Erweiterungen
24
HAG 24 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributauswertungs-Algorithmus
25
HAG 25 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributauswertung in HAGs: ● ähnlich wie in herkömmlichen Attributgrammatiken ● zyklische Abhängigkeiten zwischen Attributen können auch bei Attributauswertung entstehen ● NTA kann von erst in darunterliegenden Teilbaum berechneten synthetischen Attribut abhängen ● prinzipiell unbegrenztes Wachstum des Ableitungsbaumes ⇒ „strenge” Bedingungen an Attributgrammatiken höherer Ordnung, um Berechenbarkeit der Attribute zu gewährleisten ⇒ Definition einer erweiterten Abhängigkeitsrelation ⇒ Begriff der „wohldefinierten” Attributgrammatik Attributauswertung – Probleme
26
HAG 26 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributauswertung – erweiterte Abhängigkeitsrelation Sei die erweiterte Kantenrelation. ist die Abhängigkeitsrelation über dem Ableitungsbaum t zu einem Wort L(G). Zyklen in Relation ⇔ nicht effektiv berechenbare Attributvariablen in t
27
HAG 27 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Wohldefiniertheit
28
HAG 28 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Wohldefiniertheit – Definition alle Attribute effektiv berechenbar es werden keine Attribute „übergangen” nur endliche Erweiterungen Attributauswertung terminiert Aber: endliche Erweiterung im Allgemeinen unentscheidbar
29
HAG 29 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Wohldefiniertheit – Bedingungen 1 ● wünschenswert: ● garantiert endliche und vollständige Attributauswertung ● also wohldefinierte Attributgrammatiken ● Lösung: ● Einschränkung „zugelassener” HAGs
30
HAG 30 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Wohldefiniertheit – Bedingungen 2
31
HAG 31 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner beschränkte Wohldefiniertheit ● ⇒ Wohldefiniertheit garantiert ● aber: ● „erlaubte” HAGs stark eingeschränkt. ● Kompromiss: beschränkt wohldefinierte Attributgrammatiken ● Forderungen: im entgrateten Ableitungsbaum alle Attribute effektiv berechenbar und jede rekursive Produktion erzeugt nur endliche Wörter ● Kompromiss zwischen Handhabbarkeit und Ausdrucksstärke ● erlaubt Berechnung rekursiver Funktionen (Turing-Vollständigkeit!) mit HAGs ohne aufwändige Attributgleichungen
32
HAG 32 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner HAG für Fibonacci-Zahlen (param.0 ≥ 0)
33
HAG 33 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Schlussbemerkungen
34
HAG 34 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Fazit ● HAG beheben zahlreiche Nachteile herkömmlicher Attributgrammatiken ● geeigneter Formalismus zur Darstellung mehrstufiger Übersetzungsprozesse ● nicht allzu weit verbreitet (Google: gut 400 Treffer) ● auch bzw. vor allem in den letzten Jahren in einigen wissenschaftlichen Ausarbeitungen thematisiert (http://citeseer.nj.nec.com/context/187718/532249) ● z.B. Ansätze zur Verwendung von HAGs für die „Hardwaresynthese” (http://www.cslab.ece.ntua.gr/~ioannis/papers/ai012.pdf) ● u.a. implementiert in LRC und AG, Tools zur Erzeugung von sprachverarbeitenden Systemen auf der Basis von Attributgrammatiken
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.