Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

HAG 1 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Compilerbau Seminar Attributgrammatiken höherer Ordnung Gunter Ohrner.

Ähnliche Präsentationen


Präsentation zum Thema: "HAG 1 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Compilerbau Seminar Attributgrammatiken höherer Ordnung Gunter Ohrner."—  Präsentation transkript:

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


Herunterladen ppt "HAG 1 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Compilerbau Seminar Attributgrammatiken höherer Ordnung Gunter Ohrner."

Ähnliche Präsentationen


Google-Anzeigen