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

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

XML-Programmierung mit XDuce
Vorlesung Compilertechnik Sommersemester 2008
Frame-Logik Eine Einführung Andreas Glausch.
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Kapitel 4 Datenstrukturen
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Einige entscheidbare bzw. rekursiv aufzählbare Sprachen
Kapitel 4 Syntaktische Analyse: LR Parsing.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Algorithmentheorie 04 –Hashing
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Vortrag im Rahmen des Seminars
Semantik von Prolog & Unifikation
Parsing regulärer Ausdrücke
Sprachwissenschaftliches Institut Einführung in die HPSG Grammatiktheorie 4./11. Mai 2004.
Beispiele für Ausdrucksalgebren
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Intelligentes Crawling im WWW mit Hilfe intuitiver Suchbedingungen
1.4.3 Die abgeschlossene Hülle F+ (1|5)
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Binäre Bäume Louis Moret und Reto Huber, 5. 11
deterministisches chaos
Algorithmen und Datenstrukturen Übungsmodul 8
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Agenda Motivation und Einordnung Syntaxgerichtete Übersetzung
deterministisches chaos
Semantische Analyse und attributierte Grammatiken
Informationserhaltende Zerlegungen (1) T R sei Relationstyp mit Attributmenge A R und Ausprägung R Zerlegung in Relationstypen T R 1,...,T R k mit Attributmengen.
Algorithmen und Datenstrukturen 1 SS 2002
Syntax, Semantik, Spezifikation - Grundlagen der Informatik R. Hartwig Kapitel 3 / 1 Algebraische Hülle und Homomorphie A = [A, F ] sei  -Algebra. Eine.
Vertiefungsstoff zum Thema „Darstellung von Zahlen“
Sprachen und Programmiersprachen
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
Seminar Softwareproduktlinien Domänenspezifische Sprachen Sascha Draffehn von.
ANALYSIS KLASSE 10 - Einführung des Ableitungsbegriffs - Felix Pohl Michael Gabler.
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
Wiederholte Programmausführung
Praktische Informatik 1
Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.
Aktuelle Ergebnisse der AG Basismodellierung Integration thematischer Daten und mehrerer Level-of-Detail Gerhard Gröger.
Gliederung 0. Motivation und Einordnung 1. Endliche Automaten
Generierung von Flächenrepräsentationen aus Punktdaten
Selbstorganisation: Anhang I
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Struktur-Funktions-Modelle von Pflanzen
Die Numerische Differentiation
Allianz Lern- und Testcockpit
Assoziation und Aggregation
EPortfolio FI Mag. Günther Schwarz.
Multivariate Kryptosysteme
Methodische Grundlagen des Software-Engineering
Struktur-Funktions-Modelle von Pflanzen
Mögliche Stoffverteilung im Grundkurs
REKURSION + ITERATION.
Keyframing und Interpolation
Datenstrukturen und Softwareentwicklung
Objektorientierte Programmierung
DB2 – SS 2019 von Baum allgemein bis B*-Baum
Fächer der Sozialwissenschaft
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

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

HAG 2 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Motivation Idee / Prinzip Definitionen Beispiel Attributauswertung Wohldefiniertheit Schlussbemerkungen

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

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

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!

HAG 6 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Idee / Prinzip

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

HAG 8 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Ableitungsbäume in Attributvariablen – 2 ⇨ NTA

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

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.

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

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:

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

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)

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

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

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

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

HAG 19 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 3

HAG 20 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 4 Abkürzung für

HAG 21 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Beispiel – 5

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

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

HAG 24 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Attributauswertungs-Algorithmus

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

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

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

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

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

HAG 30 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner Wohldefiniertheit – Bedingungen 2

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

HAG 32 Compilerbau Seminar – Thema: Attributgrammatiken höherer Ordnung.Gunter Ohrner HAG für Fibonacci-Zahlen (param.0 ≥ 0)

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

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 ( ● z.B. Ansätze zur Verwendung von HAGs für die „Hardwaresynthese” ( ● u.a. implementiert in LRC und AG, Tools zur Erzeugung von sprachverarbeitenden Systemen auf der Basis von Attributgrammatiken