M a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik,

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

Informatik II – Kapitel 11
Kontextfreie Grammatiken
„Such-Algorithmen“ Zusammenfassung des Kapitels 11
8. Formale Sprachen und Grammatiken
Lösung 7.1 Syntax und Semantik
Imperative Programmierung
Grammatiken, Definitionen
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Grammatiken beschreiben Sprachen L µ *, indem.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Reduktionen Def: L · L (L ist reduzierbar auf.
Kapitel 4 Syntaktische Analyse: LR Parsing.
Parser generieren Yet Another Compiler – Compiler YACC.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
Stoyan Mutafchiev Betreuer: Ilhan, Tim
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (02 – Endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (12 – Kellerautomaten, PDA) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
Basisinformationstechnologie I Dozent T.Schaßan Ableitungsbaum Referentin: Munkhnast Dembereldalai.
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Grundkurs Theoretische Informatik, Folie 3.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 3 Gottfried Vossen Kurt-Ulrich Witt.
Prolog Grundkurs WS 98/99 Christof Rumpf
Reguläre Ausdrücke Karin Haenelt
Parsing regulärer Ausdrücke
Sprachwissenschaftliches Institut Einführung in die HPSG Grammatiktheorie 4./11. Mai 2004.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 1 Gisbert Dittrich; Claudio Moraga FBI Unido
? Grammatik  Orthographie ?
Beispiele für Ausdrucksalgebren
Agenda Motivation Formale Sprachen Compiler Compilerentwicklung
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Christian Schindelhauer
LL(1) Grammatiken Simple LL(1) ohne ε-Regeln verschiedene Produktionen, so gilt LL(1) ohne ε-Regeln verschiedene Produktionen, so gilt LL(1) mit ε-Regeln.
Grundkurs Theoretische Informatik, Folie 7.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 7 Gottfried Vossen Kurt-Ulrich Witt.
Eignung von Grammatik-basiertem Layout für grafische Programmiersprachen Seminar Layout-Algorithmen für Graphen Institut für Informatik Christian-Albrechts.
Formale Sprachen und Automaten
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
BIT – Schaßan – WS 02/03 Basisinformationstechnologie HK-Medien Teil 1, 13. Sitzung WS 02/03.
Grundlagen der Programmierung
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
Formale Sprachen Mathematische Grundlagen Rudolf FREUND, Marian KOGLER.
Entwurf und Implementierung eines Scanner-Generatorsystems
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 1: Wiederholung (Vor allem Folien von Priv.-Doz. Dr. Kindler vom WS 2001/02.
Städtisches Gymnasium Beverungen Friedel Berlage
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist.
Beispiele: KFG 2.Teil Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln: S  Ac | Bd A  aAb | ab B  aBbb | abb Definieren Sie.
Noam CHOMSKY, Sheila GREIBACH
Noam CHOMSKY, Sheila GREIBACH
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 Arne Vater Wintersemester 2006/07 28.
Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Informatik Formale Sprachen 1.2 Grammatiken formaler Sprachen
Mensch – Maschine - Kommunikation
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele (Frist: ) Beispiel 1: Sei  = {a, b} ein Alphabet und Q = {q 0, q 1 } eine.
7. Formale Sprachen und Grammatiken
Institut für Softwarewissenschaft – Universität WienP.Brezany 1 Beispiele: KFG und Automaten Beispiel 1: Sei G eine Grammatik mit den folgenden Regeln:
Kapitel 4:Die Chomsky Hierarchie
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
Grundkurs Theoretische Informatik, Folie 5.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 5 Gottfried Vossen Kurt-Ulrich Witt.
Grundkurs Theoretische Informatik, Folie 8.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 8 Gottfried Vossen Kurt-Ulrich Witt.
Grundkurs Theoretische Informatik, Folie 6.1 © 2004 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 6 Gottfried Vossen Kurt-Ulrich Witt.
 Sortigkeit oder Arität
Sprachen und Programmiersprachen
Spracherkennung mit Automaten
 Präsentation transkript:

m a r c – o l i v e r p a h l Informatik II – Kapitel 18 Übersetzung Zusammenfassung des Kapitel 18 Küchlin, Weber, Vorversion Einführung in die Informatik, 3.Auflage

2 m a r c – o l i v e r p a h l Was werden wir tun? VAR a, b; BEGIN READ a; … END. PL/0 M/0 scanning and parsing Programmcode syntaktisch korrekt? LL 1 : READ ADD … … Programmcode in höherer Programmiersprache Übersetzer (compiler) Interpreter z.B. Auswertung des PL/0 Programms mit Java… T, N

3 m a r c – o l i v e r p a h l Wortmengen Alphabet = {a1, …, an} Reflexiv-transitive Hülle von wird mit * bezeichnet: ε * (das leere Wort) a : a * ω *, a : ω a * (Formale) Sprachen umfassen eine Teilmenge von *. Konkatenation: ω ε = ω = ω ( ist Monoid (Halbgruppe mit Neutralelement) ) Produkt: Für L 1, L 2 * sei L 1 L 2 := { ω 1 ω 2 | ω 1 L 1, ω 2 L 2 } L 0 := {ε } L + := n>0 L n L* := n>=0 L n

4 m a r c – o l i v e r p a h l Grammatik Eine (formale) Sprache wird durch ihre Grammatik charakterisiert. G = N = Non-Terminal-Symbole T = Terminal-Symbole S N, Startsymbol P = Produktionen der Form mit, (N T) + N T = Ø Als Satzform bezeichnet man jede gültige Kombination aus (T, N)*. Als Satz bezeichnet man eine durch die Grammatik erstellbare Kombination aus T* Die Vereinigung aller Sätze, die durch die Grammatik erstellt werden können bezeichnet man als Sprache L(G).

5 m a r c – o l i v e r p a h l Chomsky-Hierarchie der Grammatiken Chomsky 0: Jede Grammatik ist automatisch vom Typ 0. Das heißt, bei Typ 0 sind den Regeln keinerlei Einschränkungen auferlegt. Chomsky 1: Eine Grammatik ist vom Typ 1 oder kontextsensitiv, falls für alle Regeln ω 1 ω 2 in P gilt |ω 1 | |ω 2 |. aBc -> abDc Chomsky 2: Eine Typ 1-Grammatik ist vom Typ 2 oder kontextfrei, falls für alle Regeln ω 1 ω 2 in P gilt, dass ω 1 eine einzelne Variable ist, d.h. ω 1 N. A -> a | MNO Chomsky 3: Eine Typ 2-Grammatik ist vom Typ 3 oder regulär, falls zusätzlich gilt: ω 2 N, d.h. die rechten Seiten von Regeln sind entweder einzelne Terminalzeichen oder ein Terminalzeichen gefolgt von einer Variablen. A -> a | aB Aus: Schöning, Theoretische Informatik-kurzgefaßt, 3. Auflage, Spektrum Verlag

6 m a r c – o l i v e r p a h l Chomsky-Hierarchie der Grammatiken Chomsky 0: keinerlei Einschränkungen Chomsky 1: kontextsensitiv, falls für alle Regeln ω 1 ω 2 in P gilt |ω 1 | |ω 2 |. Chomsky 2: kontextfrei, falls für alle Regeln ω 1 ω 2 in P gilt ω 1 N Chomsky 3: regulär, falls zusätzlich gilt: ω 2 N Eine Sprache L * heißt vom Typ 0 (Typ 1, …), falls es eine Typ 0 (Typ 1, …) -Grammatik G gibt mit L(G) = L. Typ 0 Typ 1 Typ 2 LL(1) Typ3

7 m a r c – o l i v e r p a h l Ableitungsbaeume N = {BINARY, DIGIT} T = {0,1} S = BINARY P = {BINARY -> DIGIT BINARY | BINARY BINARY | BINARY DIGIT BINARY -> DIGIT DIGIT -> 0 DIGIT -> 1 } DIGIT BINARY DIGIT BINARY

8 m a r c – o l i v e r p a h l BNF BNF: A ε A α A α 0 | α 1 | α 2 | α 3

9 m a r c – o l i v e r p a h l EBNF EBNF: A ε A α A α 0 | α 1 | α 2 | α 3 Optionsklammern [ α ] Vorkommen von [ α ] durch N α ersetzen und Zusatzregel N α ε | α Repetitionsklammern { α } { α } => N α N α ε | N α α Gruppierungsklammern ( α ) ( α ) = N α N α α

10 m a r c – o l i v e r p a h l Syntaxdiagramme

11 m a r c – o l i v e r p a h l Parsererzeugung

12 m a r c – o l i v e r p a h l LL1 Test Eine Sprache ist LL 1, wenn man an jeder Verzweigung des zugehörigen Syntaxdiagramms in jedem Zweig auf ein anderes Terminalsymbol trifft. T, N <- NICHT LL 1

13 m a r c – o l i v e r p a h l Lebensdauer Symbole

14 m a r c – o l i v e r p a h l Uebersetzung

15 m a r c – o l i v e r p a h l Uebersetzung

16 m a r c – o l i v e r p a h l Uebersetzung

17 m a r c – o l i v e r p a h l Uebersetzung Der dynamische Link (DL) zeigt auf den Aufruf-Stack (z.B. rekursiver Aufruf von sich selbst). Dieser wird gültig, sobald die Prozedur zurückkehrt. Der statische Link (SL) zeigt auf den Statischen Vater (nächste Ebene, z.B. um Variablen zu finden LOD l, a). Die Rücksprungadresse (RA) gibt den ProgramCounter (PC) an, bei dem nach Beendigung des Aufrufs fortgefahren werden soll.

18 m a r c – o l i v e r p a h l Beispielprogramm Das Programm soll: 2 Werte einlesen Diese addieren Den Betrag des Ergebnisses ausgeben VAR a, b; BEGIN READ a; READ b; a := a + b; IF a<0 THEN a := -a; WRITE a; END.

19 m a r c – o l i v e r p a h l Beispielprogramm VAR a, b; BEGIN READ a; READ b; a := a + b; IF a<0 THEN a := -a; WRITE a; @1:INT 5 READ STO 0,3 READ STO 0,4 LOD 0,3 LOD 0,4 ADD STO 0,3 LOD 0,3 LIT 0 LS LOD 0,3 NEG STO 0,3 WRITE RET (a) 4 (b) 5 6 SL DL RA PL/0M/0Durch die Operation betroffene Stackposition(en) 5 (5) 3 5 (5) 4 (3) 5 (4) 6 (5,6)5 (5) 3 (3) 5 6 (5,6)5 (5) (3) 5 5 (5) 3 (3) 5 (5) (?) = lesender Zugriff