Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage

Größe: px
Ab Seite anzeigen:

Download "Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage"

Transkript

1 Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman it informatik Compiler Prinzipien, Techniken und Werkzeuge 2., aktualisierte Auflage

2 Inhaltsverzeichnis Vorwort... XXIX Zur deutschen Ausgabe...XXXIII Kapitel 1 Einleitung Sprachprozessoren... 3 ÜbungenzuAbschnitt DieStruktureinesCompilers LexikalischeAnalyse Syntaxanalyse SemantischeAnalyse Zwischencodeerzeugung Codeoptimierung Codeerzeugung UmgangmitSymboltabellen Gruppieren von Phasen in Läufe WerkzeugezumCompilerbau DieEvolutionderProgrammiersprachen DerWegzuhöherenProgrammiersprachen Einfluss auf Compiler ÜbungzuAbschnitt DieWissenschaftdesCompilerbaus Modellierung bei Compilerdesign und -implementierung DieWissenschaftderCodeoptimierung Anwendungen der Compilertechnologie Implementierung von höheren Programmiersprachen OptimierungenfürComputerarchitekturen EntwurfneuerComputerarchitekturen Programmübersetzung WerkzeugezurProduktivitätssteigerung VII

3 INHALTSVERZEICHNIS 1.6 Grundlagen von Programmiersprachen Unterscheidung zwischen statisch und dynamisch UmgebungenundZustände Statischer Gültigkeitsbereich und Blockstruktur Explizite Zugriffskontrolle Dynamischer Gültigkeitsbereich MechanismenzurParameterübergabe Aliasing ÜbungenzuAbschnitt Zusammenfassung LiteraturzuKapitel Kapitel 2 Ein einfacher syntaxgerichteter Übersetzer Einführung Syntaxdefinition Grammatikdefinition Ableitungen Parse-Bäume Mehrdeutigkeit AssoziativitätvonOperatoren Operatorenpräzedenz ÜbungenzuAbschnitt SyntaxgerichteteÜbersetzung Postfixnotation SynthetisierteAttribute Einfache syntaxgerichtete Definitionen DurchlaufenvonBäumen Übersetzungsverfahren ÜbungenzuAbschnitt Syntaxanalyse(Parsing) Top-Down-Syntaxanalyse PrädiktiveSyntaxanalyse Verwendungszweck von -Produktionen EntwurfeinesprädiktivenParsers Linksrekursion ÜbungzuAbschnitt VIII

4 Inhaltsverzeichnis 2.5 ÜbersetzerfüreinfacheAusdrücke AbstrakteundkonkreteSyntax AnpassendesÜbersetzungsverfahrens ProzedurenfürdieNichtterminale VereinfachendesÜbersetzers DasvollständigeProgramm LexikalischeAnalyse Entfernen von Leerzeichen und Kommentaren VorausschauendesLesen Konstanten Erkennen von Schlüsselwörtern und Bezeichnern EinlexikalischerScanner(kurzLexer) ÜbungenzuAbschnitt Symboltabellen Symboltabellen nach Gültigkeitsbereich Verwendung von Symboltabellen Zwischencodeerzeugung ZweiArtenderZwischendarstellung KonstruktionvonSyntaxbäumen StatischeÜberprüfung Drei-Adress-Code ÜbungenzuAbschnitt Zusammenfassung Kapitel 3 Lexikalische Analyse DieRolledesLexers Lexikalische Analyse und Syntaxanalyse imvergleich Token,MusterundLexeme AttributefürToken LexikalischeFehler ÜbungenzuAbschnitt Eingabepuffer Pufferpaare Wächter IX

5 INHALTSVERZEICHNIS 3.3 SpezifikationvonToken StringsundSprachen OperationenanSprachen ReguläreAusdrücke Reguläre Definitionen ErweiterungenregulärerAusdrücke ÜbungenzuAbschnitt Tokenerkennung Übergangsdiagramme Erkennen von reservierten Wörtern und Bezeichnern AbschlussdesBeispiels Architektur eines Lexers auf der Grundlage vonübergangsdiagrammen ÜbungenzuAbschnitt DerGeneratorLexfürlexikalischeScanner Verwendung von Lex StrukturvonLex-Programmen KonfliktlösunginLex Der Lookahead-Operator ÜbungenzuAbschnitt EndlicheAutomaten NichtdeterministischeendlicheAutomaten Übergangstabellen Akzeptieren von Eingabestrings durch Automaten DeterministischeendlicheAutomaten ÜbungenzuAbschnitt VonregulärenAusdrückenzuAutomaten UmwandlungeinesNFAineinenDFA SimulationeinesNFA EffizienzderNFA-Simulation Aufbau eines NFA aus einem regulären Ausdruck Effizienz von stringverarbeitenden Algorithmen ÜbungenzuAbschnitt EntwurfeinesGeneratorsfürlexikalischeScanner DieStrukturdesgeneriertenScanners X

6 Inhaltsverzeichnis Pattern Matching auf der Grundlage von NFAs DFAsfürlexikalischeScanner Implementieren des Lookahead-Operators ÜbungenzuAbschnitt Optimierung des Pattern Matching auf DFA-Grundlage WichtigeZuständeeinesNFA Aus dem Syntaxbaum berechnete Funktionen Berechnenvonnullable,firstposundlastpos Berechnenvonfollowpos Direkte Konvertierung eines regulären Ausdruckes ineinendfa Minimierung der Anzahl von Zuständen einesdfa Zustandsminimierung in lexikalischen Scannern Kompromisse zwischen Raum und Zeit beiderdfa-simulation ÜbungenzuAbschnitt Zusammenfassung LiteraturzuKapitel Kapitel 4 Syntaktische Analyse Einführung DieRolledesParsers RepräsentativeGrammatiken BehandlungvonSyntaxfehlern StrategienfürdieFehlerbehebung KontextfreieGrammatiken Formale Definition einer kontextfreien Grammatik KonventionenfürdieNotation Ableitungen Parse-BäumeundAbleitungen Mehrdeutigkeit Verifizieren der von einer Grammatik generierten Sprache XI

7 INHALTSVERZEICHNIS Kontextfreie Grammatiken und reguläre Ausdrücke imvergleich ÜbungenzuAbschnitt SchreibeneinerGrammatik LexikalischeundsyntaktischeAnalyse EliminierenvonMehrdeutigkeiten EliminierenderLinksrekursion Linksfaktorisierung NichtkontextfreieSprachkonstrukte ÜbungenzuAbschnitt Top-Down-Parsing RekursivabsteigendesParsing FIRSTundFOLLOW LL(1)-Grammatiken NichtrekursiveprädiktiveSyntaxanalyse Fehlerbehebung bei der prädiktiven Syntaxanalyse 275 ÜbungenzuAbschnitt Bottom-Up-Parsing Reduktionen Handle-Stutzung Shift-Reduce-Syntaxanalyse Konflikte bei der Shift-Reduce-Syntaxanalyse ÜbungenzuAbschnitt EinführungindieLR-Syntaxanalyse:einfachesLR WarumLR-Parser? ItemsundderLR(0)-Automat DerLR-Parsealgorithmus AufbauvonSLR-Parsertabellen SinnvollePräfixe ÜbungenzuAbschnitt LeistungsfähigereLR-Parser Kanonische LR(1)-Items Aufbau von LR(1)-Item-Mengen KanonischeLR(1)-Parsertabellen AufbauvonLALR-Parsertabellen EffizienterAufbauvonLALR-Parsertabellen XII

8 Inhaltsverzeichnis KomprimierungvonLR-Parsertabellen ÜbungenzuAbschnitt MehrdeutigeGrammatiken Präzedenz und Assoziativität zur Konfliktlösung Mehrdeutigkeitdurchein hängendeselse FehlerbehebungbeimLR-Parsing ÜbungenzuAbschnitt Parsergeneratoren DerParsergeneratorYacc Einsatz von Yacc bei mehrdeutigen Grammatiken Erstellen von Yacc-Lexern mit Lex FehlerbehebungbeiYacc ÜbungenzuAbschnitt Zusammenfassung LiteraturzuKapitel Kapitel 5 Syntaxgerichtete Übersetzung Syntaxgerichtete Definitionen ErerbteundsynthetisierteAttribute Auswerten einer syntaxgerichteten Definition andenknoteneinesparse-baumes ÜbungenzuAbschnitt Auswerten einer syntaxgerichteten Definition andenknoteneinesparse-baumes Abhängigkeitsgraphen ReihenfolgederAuswertungvonAttributen S-attributierte Definitionen L-attributierte Definitionen Semantische Regeln mit kontrollierten Nebenwirkungen ÜbungenzuAbschnitt Anwendungen der syntaxgerichteten Übersetzung AufbauvonSyntaxbäumen DieStruktureinesTyps ÜbungenzuAbschnitt XIII

9 INHALTSVERZEICHNIS 5.4 VerfahrenzursyntaxgerichtetenÜbersetzung Postfix-Übersetzungsverfahren Parserstack-Implementierungen von syntaxgerichtetenpostfix-übersetzungen Syntaxgerichtete Übersetzungen mit Aktionen innerhalbvonproduktionen Eliminieren der Linksrekursion aus syntaxgerichtetenübersetzungen Syntaxgerichtete Übersetzungen für L-attributierte Definitionen ÜbungenzuAbschnitt Implementieren von L-attributierten syntaxgerichteten Definitionen Übersetzung bei der rekursiv absteigenden Syntaxanalyse CodeerzeugungimlaufendenBetrieb L-attributierte syntaxgerichtete Definitionen und LL-Syntaxanalyse Bottom-Up-Syntaxanalyse von L-attributierten syntaxgerichteten Definitionen ÜbungenzuAbschnitt Zusammenfassung LiteraturzuKapitel Kapitel 6 Zwischencodeerzeugung VariantenvonSyntaxbäumen GerichteteazyklischeGraphenfürAusdrücke Die Wertenummermethode für die Konstruktion vondags ÜbungenzuAbschnitt Drei-Adress-Code AdressenundBefehle Quadrupel Tripel StatischeEinzelzuweisungsform ÜbungenzuAbschnitt XIV

10 Inhaltsverzeichnis 6.3 TypenundDeklarationen Typausdrücke Typäquivalenz Deklarationen SpeicherlayoutfürlokaleNamen SequenzenausDeklarationen FelderinStrukturenundKlassen ÜbungenzuAbschnitt ÜbersetzungvonAusdrücken OperationeninAusdrücken InkrementelleÜbersetzung AdressierenvonArrayelementen ÜbersetzungvonArrayreferenzen ÜbungenzuAbschnitt Typüberprüfung Regeln für die Typüberprüfung Typkonvertierung Überladen von Funktionen und Operatoren Typinferenz und polymorphe Funktionen EinUnifikationsalgorithmus ÜbungenzuAbschnitt Kontrollfluss BoolescheAusdrücke Short-Circuit-Code Kontrollflussanweisungen Kontrollflussübersetzung von booleschen Ausdrücken Vermeiden redundanter Goto-Befehle BoolescheWerteundSprungcode ÜbungenzuAbschnitt Backpatching Einpass-CodeerzeugungmitBackpatching Backpatching für boolesche Ausdrücke Steuerungsflussanweisungen Break-,continue-undgoto-Anweisungen ÜbungenzuAbschnitt XV

11 INHALTSVERZEICHNIS 6.8 Switch-Anweisungen Übersetzungvonswitch-Anweisungen Syntaxgerichtete Übersetzung von switch- Anweisungen ÜbungzuAbschnitt ZwischencodefürProzeduren Zusammenfassung LiteraturzuKapitel Kapitel 7 Laufzeitumgebungen Speicheraufbau Statische und dynamische Speicherzuweisung SpeicherzuweisungaufdemStack Aktivierungsbäume Aktivierungseinträge Aufrufsequenzen DatenvariablerLängeaufdemStack ÜbungenzuAbschnitt ZugriffaufnichtlokaleDatenaufdemStack DatenzugriffohneverschachtelteProzeduren ProblemebeiverschachteltenProzeduren Eine Sprache mit Deklarationen für verschachtelte Prozeduren Verschachtelungstiefe Zugriffslinks Bearbeiten von Zugriffslinks Zugriffslinks für Prozedurparameter Displays ÜbungenzuAbschnitt Heap-Verwaltung Der Speichermanager DieSpeicherhierarchieeinesComputers Lokalität in Programmen VerringernderFragmentierung ManuelleSpeicherfreigabe ÜbungzuAbschnitt XVI

12 Inhaltsverzeichnis 7.5 EinführungindieGarbageCollection EntwurfszielefürGarbageCollectors Erreichbarkeit Garbage Collectors mit Referenzzählern ÜbungenzuAbschnitt Einführung in die Garbage Collection mit Zeigerverfolgung EineinfacherMark-and-Sweep-Collector Grundlegende Abstraktion OptimierenderMark-and-Sweep-Collection Mark-and-Compact-Collectors Kopier-Collectors Kostenvergleich ÜbungenzuAbschnitt GarbageCollectionmitkurzenPausen InkrementelleGarbageCollection InkrementelleErreichbarkeitsanalyse Grundlagen der teilweisen Garbage Collection GarbageCollectionnachGenerationen DerZugalgorithmus ÜbungenzuAbschnitt Fortgeschrittene Themen der Garbage Collection Parallele und gleichzeitige Garbage Collection TeilweiseObjektverschiebung Konservative Garbage Collection für unsichere Sprachen SchwacheReferenzen ÜbungzuAbschnitt Zusammenfassung LiteraturzuKapitel Kapitel 8 Codeerzeugung Aspekte für den Entwurf eines Codegenerators Eingabe in den Codegenerator DasZielprogramm Befehlsauswahl Registervergabe Auswertungsreihenfolge XVII

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman it informatik Compiler Prinzipien, Techniken und Werkzeuge 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman Compiler

Mehr

Anwendung von Kontextfreien Grammatiken

Anwendung von Kontextfreien Grammatiken Anwendung von Kontextfreien Grammatiken Kontextfreie Grammatiken Eine kontextfreie Grammatik (kfg) ist formal definiert als ein 4-Tupel. G = (N, T, P, S) Wobei: N: Nichtterminalsymbol / Variable T: Terminalsymbol

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau für die Common Language Run-Time Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 21. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.

Mehr

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage.

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage. Bachelor-Programm Compilerbau im SoSe 2014 Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage fischer@informatik.hu-berlin.de J.Fischer 11.1 4.6.4 LR(1) - Syntaxanalyse Motivation für

Mehr

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion

Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.

Mehr

Zwischencode-Erzeugung. 2. Juni 2009

Zwischencode-Erzeugung. 2. Juni 2009 Zwischencode-Erzeugung im Rahmen des Seminars "Übersetzung von künstlichen Sprachen" Sebastian Hanneken 2. Juni 2009 1 / 32 1 Einleitung Einordnung Funktion von Zwischencode 3-Adresscode (3AC) 2 Erzeugung

Mehr

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002

Übungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002 1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben

Mehr

Übersetzergenerierung mit lex und yacc

Übersetzergenerierung mit lex und yacc Übersetzergenerierung mit lex und yacc 0. Überblick und Organisatorisches Jan Bredereke WiSe 2006/07, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 20. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Definition von LR(k)-Grammatiken

Definition von LR(k)-Grammatiken Definition von LR(k)-Grammatiken Ziel: Ein Lookahead von k soll ausreichen um entscheiden zu können, welche Regel angewendet werden muss. Definition: FIRST k (w 1 w n ):= w 1 w k, falls n k, w 1 w n, sonst.

Mehr

Grundlagen der Programmierung 3 A

Grundlagen der Programmierung 3 A Grundlagen der Programmierung 3 A Compiler A: Phasen Lexikalische Analyse; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2018 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein

Mehr

LR-Parser, Shift-Reduce-Verfahren

LR-Parser, Shift-Reduce-Verfahren LR-Parser, Shift-Reduce-Verfahren Bottom-Up-Syntaxanalyse LR-Parser L: Eingabe von links nach rechts; R: Rechtsherleitung Shift-Reduce-Verfahren Beachte: Kein Backtracking nicht auf jede Grammatik anwendbar

Mehr

Welche Voraussetzung muss eine Sprache erfüllen damit sie übersetzt werden kann? Sie muss eine kontextfreie Grammatik haben.

Welche Voraussetzung muss eine Sprache erfüllen damit sie übersetzt werden kann? Sie muss eine kontextfreie Grammatik haben. Prüfungsprotokoll Wahlmodul I der Informatik 25510 (Bachelor Informatik) Übersetzerbau 01810 Datum: 19.02.2018 Prüfer: Prof. Dr. Güting Dauer: ca. 30min Note: 1,3 Videokonferenzprüfung Weshalb benötigt

Mehr

Gedächtnisprotokoll, mündliche Prüfung Übersetzerbau (01810) am Allgemeine Fragen

Gedächtnisprotokoll, mündliche Prüfung Übersetzerbau (01810) am Allgemeine Fragen Gedächtnisprotokoll, mündliche Prüfung Übersetzerbau (01810) am 13.5.13 Allgemeine Fragen - Warum übersetz man eigentlich? - Was wird alles übersetzt? - Unterschiede Compiler / Interpreter - Vor- und Nachteile

Mehr

Die С ++-Programmiersprache

Die С ++-Programmiersprache Bjarne Stroustrup Die С ++-Programmiersprache 3., aktualisierte und erweiterte Auflage Deutsche Übersetzung von Nicolai Josuttis und Achim Lörke raddison-wesley An imprint of Addison Wesley Longman, Inc.

Mehr

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage

Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman it informatik Compiler Prinzipien, Techniken und Werkzeuge 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman Compiler

Mehr

LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13

LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13 LR-Parsing Präsentation vom 19. Dez. 2012 Adriana Kosior, Sandra Pyka & Michael Weidauer Automatische Syntaxanalyse (Parsing) Wintersemester 12/13 Inhalte Einleitung LR(0) Parser LR(1) Parser Fazit Literatur

Mehr

9.4 Grundlagen des Compilerbaus

9.4 Grundlagen des Compilerbaus Kap09.fm Seite 717 Dienstag, 7. September 2010 2:06 14 9.4 Grundlagen des Compilerbaus 717 so dass die Benutzung dieser Regeln zum Aufbau eines + -Knotens bzw. eines Negations- Knotens im abstrakten Syntaxbaum

Mehr

Compilerbau. Einführung in Bison

Compilerbau. Einführung in Bison Compilerbau Einführung in Bison Überblick 1. Bison a) Eingabespezifikation 1. Prolog 2. Definitionsteil 3. Regelteil 4. Epilog b) Bison-Bezeichner und -Funktionen c) Konflikte und Mehrdeutigkeiten d) Debug-Funktionalität

Mehr

Von der Grammatik zum AST

Von der Grammatik zum AST Von der Grammatik zum AST Welche Eigenschaften soll ein Parser haben? Wann ist eine Grammatik eindeutig? Wie sollte eine Grammatik aussehen? Theoretischer Hin tergrund: FIRST, FOLLOW Einschränkungen von

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Compiler: Parser. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

Compiler: Parser. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung: Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 17.05.2017 11:06 Inhaltsverzeichnis Parsing....................................... 2 Syntax........................................

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation

Mehr

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale

Mehr

Compilerbau. Martin Plümicke WS 2018/19

Compilerbau. Martin Plümicke WS 2018/19 Compilerbau Martin Plümicke WS 2018/19 Agenda I. Überblick Vorlesung Literatur II. Compiler Überblick III. Überblick Funktionale Programmierung Einleitung Haskell-Grundlagen IV. Compiler Scanner Parser

Mehr

Definition Compiler. Bekannte Compiler

Definition Compiler. Bekannte Compiler Compiler Inhalt: Definition Compiler / bekannte Compiler Klassifikationen von Compilern Analyse-Synthese-Modell der Kompilierung Analyse des Quellprogramms Synthesephase Die Phasen eines Compilers Symboltabellenverwaltung

Mehr

5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse

5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse 5. Syntaxanalyse und der Parser-Generator yacc 5.1 Einleitung 5.2 Kontextfreie Grammatiken 5.3 Grundlagen von yacc 5.4 Absteigende Analyse Übersetzergenerierung Syntaxanalyse und yacc (2) Jan Bredereke,

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen Syntax von Programmiersprachen SEP 209 Programmiersprachen Sprache = Menge von Wörtern, typischerweise unendlich Programmiersprache: Wörter repräsentieren Programme Programm kann auf einem Computer evtl.

Mehr

Kapitel 1 Automaten: Die Grundlagen und Methoden... 23

Kapitel 1 Automaten: Die Grundlagen und Methoden... 23 Vorwort...................................................... 17 Vorwort zur deutschen Auflage.............................. 21 Kapitel 1 Automaten: Die Grundlagen und Methoden..... 23 1.1 Wozu dient das

Mehr

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26

Einführung. (Compiler) Prof. Dr. Oliver Braun. Letzte Änderung: :49. Einführung 1/26 Einführung (Compiler) Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 15:49 Einführung 1/26 Ein Compiler ist ein Computerprogramm das ein Programm geschrieben in einer Sprache in ein Programm übersetzt

Mehr

Grundlagen der Programmierung 3 A

Grundlagen der Programmierung 3 A Grundlagen der Programmierung 3 A Compiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein Programm, das ein Wort

Mehr

Springer-Verlag Berlin Heidelberg GmbH

Springer-Verlag Berlin Heidelberg GmbH Springer-Lehrbuch Springer-Verlag Berlin Heidelberg GmbH Ralf Hartmut Güting Martin Erwig Ü bersetzerba u Techniken, Werkzeuge, Anwendungen Mit 103 Abbildungen Springer Prof. Dr. Ralf HartmutGüting Dr.

Mehr

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 22 Exkurs: Formale Sprachen Im Kapitel

Mehr

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf.

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf. Bachelor-Programm Compilerbau im SoSe 2014 Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf. Ingmar Eveslage fischer@informatik.hu-berlin.de J.Fischer 6.1 Position Kapitel 1 Compilationsprozess

Mehr

Anwenundg regulärer Sprachen und endlicher Automaten

Anwenundg regulärer Sprachen und endlicher Automaten Proseminar Theoretische Informatik Dozent: Prof. Helmut Alt Anwenundg regulärer Sprachen und endlicher Automaten Madlen Thaleiser 30. Oktober 2012 Reguläre Sprachen Regulärer Ausdruck definiert über einem

Mehr

Vorname:... Matrikel-Nr.:... Unterschrift:...

Vorname:... Matrikel-Nr.:... Unterschrift:... Fachhochschule Mannheim Hochschule für Technik und Gestaltung Fachbereich Informatik Studiengang Diplom (RGS 9) Compilerbau Sommersemester 2005 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise:

Mehr

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

Compiler. Einführung. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung: Compiler Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................

Mehr

Compiler: Einführung

Compiler: Einführung Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 15:49 Inhaltsverzeichnis Ein Compiler................................... 2 Ein Compiler...................................

Mehr

Grundkurs Theoretische Informatik

Grundkurs Theoretische Informatik Grundkurs Theoretische Informatik Eine anwendungsbezogene Einführung - Für Studierende in allen Informatik-Studiengängen Bearbeitet von Gottfried Vossen, Kurt-Ulrich Witt 6., erweiterte und überarbeitete

Mehr

Einführung - Parser. Was ist ein Parser?

Einführung - Parser. Was ist ein Parser? Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Grundkurs Theoretische Informatik

Grundkurs Theoretische Informatik Gottfried Vossen I Kurt-Ulrich Witt Grundkurs Theoretische Informatik Eine anwendungsbezogene Einführung - Für Studierende in allen Informatik-Studiengängen 5., durchgesehene Auflage Mit 147 Abbildungen

Mehr

Deterministischer Kellerautomat (DPDA)

Deterministischer Kellerautomat (DPDA) Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,

Mehr

Deterministische PDAs

Deterministische PDAs Deterministische PDAs Erinnerung: Ein PDA ist deterministisch, wenn q Q, a Σ, Z Γ: δ(q,a,z) + δ(q,ε,z) 1. Definition: Eine Sprache heißt deterministisch kontextfrei, wenn es für sie einen DPDA gibt. Ziel:

Mehr

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse Compilerbau Syntaxanalyse 68 LR(1)-Syntaxanalyse Bei der LL(1)-Syntaxanalyse wird allein aufgrund des nächsten Tokens die zu verwendende Produktion ermittelt. Bei der LR(1)-Syntaxanalyse braucht diese

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Formale Beschreibung von Programmiersprachen Lexikalische Regeln Definition von Wörtern (Lexem, Token) Gruppierung von Zeichen Lexikalische Kategorien: Klassen ähnlicher

Mehr

Die C++-Programmiersprache

Die C++-Programmiersprache Bjarne Stroustrup Die C++-Programmiersprache 4, aktualisierte und erweiterte Auflage Deutsche Übersetzung der»special Edition^ von Nicolai Josuttis und Achim Lörke ADDISON-WESLEY An imprint of Pearson

Mehr

Phasen eines Compilers. Grundlagen der Programmierung 2. Programm für heute. LR-Parser, Shift-Reduce-Verfahren. Schiebe-Reduziere-Parser

Phasen eines Compilers. Grundlagen der Programmierung 2. Programm für heute. LR-Parser, Shift-Reduce-Verfahren. Schiebe-Reduziere-Parser Phasen eines Compilers Grundlagen der Programmierung 2 Schiebe-Reduziere-Parser Prof Dr. Manfred Schmidt-Schauß (unter Mithilfe von PD Dr. David Sabel) Quelltext (String) Syntaxbaum Lexikalische Analyse

Mehr

Compilerbau für die Common Language Run-Time

Compilerbau für die Common Language Run-Time Compilerbau für die Common Language Run-Time Syntaxanalyse 2 Grammatikgetriebener Compilerbau Grammatik Teil der Sprachdefinition Grammatik liefert Liste der Tokenklassen Grammatik hilft bei Strukturierung

Mehr

Inhalt Kapitel 11: Formale Syntax und Semantik

Inhalt Kapitel 11: Formale Syntax und Semantik Inhalt Kapitel 11: Formale Syntax und Semantik 1 Abstrakte und konkrete Syntax 2 Lexikalische Analyse 3 Formale Sprachen, Grammatiken, BNF 4 Syntaxanalyse konkret 266 Abstrakte und konkrete Syntax Abstrakte

Mehr

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Aufgabenbeschreibung 29. Juli 2011 1 Einleitung und Motivation Der Parser-Generator Antlr [Par07] bietet die Möglichkeit, die Auswahl

Mehr

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann. Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden

Mehr

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz. Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe

Mehr

Grundlagen der Programmierung 2 (Comp-A)

Grundlagen der Programmierung 2 (Comp-A) Grundlagen der Programmierung 2 (Comp-A) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 23. Mai 2007 Compiler; Übersetzungprogramme Ein Übersetzer (Compiler) ist ein Programm,

Mehr

Earley Parser. Flutura Mestani

Earley Parser. Flutura Mestani Earley Parser Flutura Mestani Informatik Seminar Algorithmen zu kontextfreien Grammatiken Wintersemester 2015/2016 Prof. Martin Hofmann, Dr. Hans Leiß Flutura Mestani 25.11.2015 Seminar Algorithmen zu

Mehr

Compilerbau. Übung 2. Prof. Johann-Christoph Freytag Dr. Klaus Ahrens Jörg Bachmann Fabian Fier Dorian Weber. 18. Mai 2016

Compilerbau. Übung 2. Prof. Johann-Christoph Freytag Dr. Klaus Ahrens Jörg Bachmann Fabian Fier Dorian Weber. 18. Mai 2016 2 Prof. Johann-Christoph Freytag Dr. Klaus Ahrens Jörg Bachmann Fabian Fier Dorian Weber 18. Mai 2016 Inhalt Wiederholung Compilertechnologie Lexer Flex 2 / 24 Wiederholung Compilertechnologie Architekturschema

Mehr

Grundlagen der Programmierung 2 (Comp-A)

Grundlagen der Programmierung 2 (Comp-A) Grundlagen der Programmierung 2 (Comp-A) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 16. Juni 2011 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein

Mehr

Grammatiken und ANTLR

Grammatiken und ANTLR Grammatiken und ANTLR Zusatzfolien zu Algo Blatt 6 Author: Henry Schaefer http://www.majeeks.de/folien_blatt6.pdf Grammatik Definition: syntaktische Beschreibung einer Sprache (H.S.) Definiton Grammatik

Mehr

Graphische Entwicklungsumgebung für eine Echtzeitprogrammiersprache

Graphische Entwicklungsumgebung für eine Echtzeitprogrammiersprache Graphische Entwicklungsumgebung für eine Echtzeitprogrammiersprache Masterarbeit Vorgetragen von: Studiengang: Erstprüfer: Zweitprüfer: Andreas Enns MSc Elektro- und Informationstechnik Prof. Dr.-Ing.

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten und formale Sprachen Klausurvorbereitung Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen

Mehr

Fachseminar. Semantische Analyse

Fachseminar. Semantische Analyse Fachseminar Vortragender: Arton Berisha Thema : Semantische Analyse Kursleiter: Prof. Dr. Helmut Weber Agenda 1. Einleitung 1.1 Phasen eines Compilers 1.2 Symboltabelle 2. Semantische Analyse 2.1 Was ist

Mehr

5. Die syntaktische Analyse

5. Die syntaktische Analyse mittels sog. Parser Input: Folge von Token (Symbolen), geliefert vom Scanner/Sieber Aufgabe: Teilfolgen zusammenfassen zu größeren syntaktischen Einheiten Ausdrücke, Anweisungen(-folgen), Deklarationen,

Mehr

Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 22. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Grundkurs Software- Entwicklung mit C++

Grundkurs Software- Entwicklung mit C++ Dietrich May Grundkurs Software- Entwicklung mit C++ Praxisorientierte Einführung mit Beispielen und Aufgaben- Exzellente Didaktik und Übersicht Mit 30 Abbildungen 2., überarbeitete und erweiterte Auflage

Mehr

Patrick Simianer Visualisierung regulärer Ausdrücke

Patrick Simianer Visualisierung regulärer Ausdrücke Patrick Simianer Visualisierung regulärer Ausdrücke Patrick Simianer 2010-06-28 Endliche Automaten HS bei Dr. Karin Haenelt Universitiät Heidelberg im Sommersemester 2010 1 Einleitung Überlegungen Protoypisches

Mehr

Kapitel 5: Syntax-Analyse

Kapitel 5: Syntax-Analyse Kapitel 5: Syntax-Analyse Aufgabe Die Token-Folge wird strukturiert in Anweisungen, Ausdrücke etc., um die Semantische Analyse und Code-Erzeugung zu ermöglichen Themen Kontextfreie Grammatik Äquivalente

Mehr

Compiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers

Compiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers ompiler; Übersetzungsprogramme Grundlagen der Programmierung 3 A ompiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Ein Übersetzer (ompiler) ist ein Programm, das ein Wort

Mehr

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage

ISO-SiMMlarcl. als erste Programmiersprache. Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage ISO-SiMMlarcl als erste Programmiersprache Von Prof. Dr. Joachim Goll Uwe Grüner Prof. Herbert Wiese 2., durchgesehene Auflage B.G.Teubner Stuttgart Leipzig 1999 Inhaltsverzeichnis 1.1 Algorithmen und

Mehr

Speech Recognition Grammar Compilation in Grammatikal Framework. von Michael Heber

Speech Recognition Grammar Compilation in Grammatikal Framework. von Michael Heber Speech Recognition Grammar Compilation in Grammatikal Framework von Michael Heber Agenda 1. Einführung 2. Grammatical Framework (GF) 3. Kontextfreie Grammatiken und Finite-State Modelle 4. Quellen 2 1.

Mehr

Zum Buch Hinweise Handhabung des Buchs Website In eigener Sache... 19

Zum Buch Hinweise Handhabung des Buchs Website In eigener Sache... 19 Vorwort 13 Zum Buch.................................................... 15 Hinweise..................................................... 17 Handhabung des Buchs.........................................

Mehr

Programmieren lernen mit Perl

Programmieren lernen mit Perl Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete

Mehr

Ergänzungen zur Theoretischen Informatik. Compilerbau mit ANTLR. Literatur Das Standardwerk zum Compilerbau ist [1].

Ergänzungen zur Theoretischen Informatik. Compilerbau mit ANTLR. Literatur Das Standardwerk zum Compilerbau ist [1]. Themen Compilerbau mit ANTLR. Literatur Das Standardwerk zum Compilerbau ist [1]. [1] Aho, Alfred V. ; Lam, Monica S. ; Sethi, Ravi: Compiler. Prinzipien, Techniken und Tools. Pearson, 2008. ISBN 3827370973

Mehr

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2

Vorwort zur zweiten Auflage 1. Vorwort zur ersten Auflage 2 Vorwort zur zweiten Auflage 1 Vorwort zur ersten Auflage 2 1 Über dieses Buch 3 1.1 WarumdiesesBuch?... 3 1.2 Voraussetzungen...... 4 1.3 Systematik... 4 1.4 WieliestmandiesesBuch?... 6 1.5 ZugriffaufdieQuellenzudenBeispielen...

Mehr

Konstruieren der SLR Parsing Tabelle

Konstruieren der SLR Parsing Tabelle Konstruieren der SLR Parsing Tabelle Kontextfreie Grammatik (CFG) Notation 1. Diese Symbole sind Terminals: (a) Kleinbuchstaben vom Anfang des Alphabets wie a, b, c. (b) Operator Symbole wie +,, usw. (c)

Mehr

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage.

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage. Bachelor-Programm Compilerbau im SoSe 2014 Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dipl.-Inf. Ingmar Eveslage fischer@informatik.hu-berlin.de J.Fischer 8.1 Position Kapitel 1 Compilationsprozess Teil

Mehr

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum:

Stratego/XT und ASF+SDF Meta-Environment. Paul Weder Seminar Transformationen Datum: Stratego/XT und ASF+SDF Meta-Environment Paul Weder Seminar Transformationen Datum: 20.01.2006 Gliederung Allgemeines ASF+SDF Meta-Environment Stratego/XT Zusammenfassung/Vergleich SDF (Syntax Definition

Mehr

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt. examen.press examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt. Reinhard Wilhelm Helmut Seidl Sebastian Hack Übersetzerbau Band

Mehr

Attributierte Grammatiken

Attributierte Grammatiken Attributierte Grammatiken Form: kontextfreie Produktionsregeln Attribute: eine Reihe von Variablen für jedes Grammatiksymbol für jede Produktion: Auswertungsregeln: bestimmen Berechnung der Attribute Bedingungen:

Mehr

The ACCENT Compiler Compiler. A compiler compiler for the entire class of context-free languages

The ACCENT Compiler Compiler. A compiler compiler for the entire class of context-free languages The ACCENT Compiler Compiler A compiler compiler for the entire class of context-free languages Valentin Ziegler mailto:ziegler@informatik.hu-berlin.de 3. Juli 2003 Accent Compiler Compiler für beliebige

Mehr

30. Parser-Generatoren

30. Parser-Generatoren 30. Parser-Generatoren Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden http://st.inf.tu-dresden.de Version 11-0.1,

Mehr

Grundlagen der Programmierung 2 (Comp-D)

Grundlagen der Programmierung 2 (Comp-D) Grundlagen der Programmierung 2 (Comp-D) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 31. Mai 2007 Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen

Mehr

Der Grid-Occam-Compiler. Syntaxanalyse

Der Grid-Occam-Compiler. Syntaxanalyse Der Grid-Occam-Compiler Syntaxanalyse Grammatikgetriebener Compilerbau Grammatik Teil der Sprachdefinition Grammatik liefert Liste der Tokenklassen Grammatik hilft bei Strukturierung der abstrakten Syntax

Mehr

Nachlieferung Übung 4+7: Minimierung von DFAs, LR-Grammatiken

Nachlieferung Übung 4+7: Minimierung von DFAs, LR-Grammatiken Nachlieferung Übung 4+7: Minimierung von DFAs, LR-Grammatiken Theoretische Informatik Sommersemester 2015 Markus Schlaffer 3. Juli 2015 1/7 Äquivalenzen Definition (Äquivalente Worte) Jede Sprache L Σ

Mehr

LR Parsing. Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52)

LR Parsing. Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52) LR Parsing Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52) Parserkonfiguration: s 0 X 1 s 1... X m s m, t i t i 1... t n 1.Stack: enthält abwechselnd Zustand sk und Grammatiksymbol

Mehr

Übersetzerbau Cluj-Napoca, Rumänien 2007

Übersetzerbau Cluj-Napoca, Rumänien 2007 Übersetzerbau Cluj-Napoca, Rumänien 2007 Markus Löberbauer Institut für Systemsoftware Johannes Kepler Universität, 4040 Linz, Österreich Loeberbauer@ssw.jku.at 2007-02-01 Zusammenfassung In dieser Übung

Mehr

Varianten endlicher Automaten

Varianten endlicher Automaten Varianten endlicher Automaten Varianten endlicher Automaten 2 Endliche Automaten mit λ-übergängen können aktuellen Zustand wechseln, ohne ein Zeichen zu lesen; sind praktisch (vereinfachen oft die Modellierung

Mehr

Übungsaufgaben zu Formalen Sprachen und Automaten

Übungsaufgaben zu Formalen Sprachen und Automaten Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel

Mehr

Prof. Dr. Wolfgang Schramm. Vorname:... Matrikel-Nr.:... Unterschrift:...

Prof. Dr. Wolfgang Schramm. Vorname:... Matrikel-Nr.:... Unterschrift:... Compilerbau Prof. Dr. Wolfgang Schramm Sommersemester 2006 Name:... Vorname:... Matrikel-Nr.:... Unterschrift:... Hinweise: 1.) Schreiben Sie Ihren Namen und Ihre Matrikelnummer zu Beginn auf das Deckblatt

Mehr

Struktur und Implementierung von Programmiersprachen II. (Compilerbau) WS 2006/2007

Struktur und Implementierung von Programmiersprachen II. (Compilerbau) WS 2006/2007 Struktur und Implementierung von Programmiersprachen II (Compilerbau) WS 2006/2007 Vorlesung und Übung: Dr. Christoph Herrmann http://infosun.fmi.uni passau.de /cl/lehre/sips2 ws0607/index.html 1/1 Einordnung

Mehr

7. Optimierung. Verschiedene Hilfsmittel zur Entscheidung der Optimierungsfrage:

7. Optimierung. Verschiedene Hilfsmittel zur Entscheidung der Optimierungsfrage: Verschiedene Hilfsmittel zur Entscheidung der Optimierungsfrage: abstrakte Interpretation Datenflußanalysen wie: lebendige Variablen ankommende Definitionen verfügbare Ausdrücke wichtige Ausdrücke Beispiel

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Maximilian Haslbeck Fabian Mitterwallner Georg Moser David Obwaller cbr.uibk.ac.at Zusammenfassung der letzten LVA Definition Eine Grammatik G ist ein Quadrupel

Mehr

1 Attributierte Grammatiken. 2 Zyklische AG. 3 Codeerzeugung mit AGs. Zusatzfolien Semantische Analyse Wintersemester 2008/09 1 / 28

1 Attributierte Grammatiken. 2 Zyklische AG. 3 Codeerzeugung mit AGs. Zusatzfolien Semantische Analyse Wintersemester 2008/09 1 / 28 1 Attributierte Grammatiken 2 Zyklische AG 3 Codeerzeugung mit AGs Zusatzfolien Semantische Analyse Wintersemester 2008/09 1 / 28 Beispiel: Taschenrechner mit Attributierter Grammatik Produktion Semantische

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

Fachseminar Compilerbau

Fachseminar Compilerbau Fachseminar Compilerbau WS 08/09 Matthias Schiller Syntaktische Analyse 1. Prinzip der Top-Down-Analyse 2. LL(1)-Grammatiken Modell-Vorstellung Der Scanner liefert als Ergebnis der lexikalischen Analyse,

Mehr

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.

Es gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus. 1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software

Mehr

Operationen auf Grammatiken

Operationen auf Grammatiken Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen, Elimination bestimmter Konstrukte Erzeugen eines Parsers Transformation G 1 G 2 mit L(G 1 ) = L(G 2 ) I.a. Parsebaum 1 (w) Parsebaum

Mehr

Seite 1. ProSeminar Compilerbau

Seite 1. ProSeminar Compilerbau Seite 1 ProSeminar Compilerbau Seite 2 Was passiert, wenn ihr javac aufruft? In diesem Seminar lernt ihr, wie ein Werkzeug, das ihr jeden Tag verwendet, eigentlich funktioniert. Seite 3 Aufbau des ProSeminars

Mehr