Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman. Compiler. informatik. Prinzipien, Techniken und Werkzeuge. 2., aktualisierte Auflage
|
|
- Harald Pfeiffer
- vor 5 Jahren
- Abrufe
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 it informatik Compiler Prinzipien, Techniken und Werkzeuge 2., aktualisierte Auflage Alfred V. Aho Monica S. Lam Ravi Sethi Jeffrey D. Ullman Compiler
MehrAnwendung 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
MehrCompilerbau 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,
MehrGrundlagen 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
MehrShift 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.
MehrCompilerbau. 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
MehrShift 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.
MehrZwischencode-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
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 0. Überblick und Organisatorisches Jan Bredereke WiSe 2006/07, Universität Bremen otivation Übersetzer: Grundlegende Werkzeuge welche Fehler kann er finden? Konstrukt
MehrGrundlagen 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
MehrDefinition 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.
MehrGrundlagen 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
MehrLR-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
MehrWelche 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
MehrGedä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
MehrDie С ++-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.
MehrAlfred 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
MehrLR-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
Mehr9.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
MehrCompilerbau. 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
MehrVon 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
MehrLexikalische 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
MehrCompiler: 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........................................
MehrProgrammiersprachen 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
MehrAlgorithmen 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
MehrCompilerbau. 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
MehrDefinition 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
Mehr5. 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,
MehrSyntax 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.
MehrKapitel 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
MehrEinfü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
MehrGrundlagen 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
MehrSpringer-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.
MehrAlgorithmen 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
MehrCompilerbau. 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
MehrAnwenundg 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
MehrVorname:... 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:
MehrCompiler. 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...................................
MehrCompiler: 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...................................
MehrGrundkurs 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
MehrEinfü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
MehrInhaltsverzeichnis. 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...........................
MehrGrundkurs 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
MehrDeterministischer 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,δ,
MehrDeterministische 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:
MehrCompilerbau 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
MehrEinfü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
MehrDie 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
MehrPhasen 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
MehrCompilerbau 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
MehrInhalt 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
MehrImplementierung 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
MehrSei Σ 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
MehrUmformung 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
MehrGrundlagen 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,
MehrEarley 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
MehrCompilerbau. Ü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
MehrGrundlagen 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
MehrGrammatiken 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
MehrGraphische 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.
MehrAutomaten 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
MehrFachseminar. 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
Mehr5. 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,
MehrGrundlagen 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
MehrGrundkurs 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
MehrPatrick 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
MehrKapitel 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
MehrCompiler; Ü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
MehrISO-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
MehrSpeech 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.
MehrZum Buch Hinweise Handhabung des Buchs Website In eigener Sache... 19
Vorwort 13 Zum Buch.................................................... 15 Hinweise..................................................... 17 Handhabung des Buchs.........................................
MehrProgrammieren 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
MehrErgä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
MehrVorwort 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...
MehrKonstruieren 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)
MehrCompilerbau. 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
MehrStratego/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
Mehrexamen.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
MehrAttributierte 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:
MehrThe 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
Mehr30. 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,
MehrGrundlagen 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
MehrDer 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
MehrNachlieferung Ü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 Σ
MehrLR 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 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
MehrVarianten 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
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
MehrProf. 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
MehrStruktur 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
Mehr7. 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
MehrEinfü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
Mehr1 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
MehrKlammersprache 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
MehrFachseminar 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,
MehrEs 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
MehrOperationen 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
MehrSeite 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