Städtisches Gymnasium Beverungen Friedel Berlage

Slides:



Advertisements
Ähnliche Präsentationen
Vorlesung Compilertechnik Sommersemester 2008
Advertisements

Kontextfreie Grammatiken
Kellerautomaten und Turingmaschinen
7. Automaten Ein Automat ist ein Sechstupel A= (I, O, Q, , q0, F).
Institut für Informatik Abt. Intelligente Systeme
8. Formale Sprachen und Grammatiken
Imperative Programmierung
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Notationen A = ist eine endliche, nichtleere menge,
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.
Parser für CH3-Sprachen
Stoyan Mutafchiev Betreuer: Ilhan, Tim
CFGs und Kellerautomaten
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 (06 – Reduktion endlicher Automaten) 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 (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (17 –Turingmaschinen) Prof. Dr. Th. Ottmann.
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,
Prof. Dr. rer.nat. Ralph Großmann Fakultät Informatik / Mathematik Sommersemester 2012 Internet-Technologien XML-basierte Techniken Teil Metasprache der.
Prolog Grundkurs WS 98/99 Christof Rumpf
Beispiele für Ausdrucksalgebren
Agenda Motivation Formale Sprachen Compiler Compilerentwicklung
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Christian Schindelhauer
Christian Schindelhauer
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/ Vorlesung Dominic Dumrauf.
Christian Schindelhauer
Christian Schindelhauer
Berechenbarkeit. Fragestellungen Können Computer alles ausrechnen? Kann man alles ausrechnen? Was kann man berechnen? Was nicht? Was heißt Berechenbarkeit?
Endliche Automaten Informatik JgSt. 13, Abitur 2009
Grenzen der Regularität
Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung
Basisinformationstechnologie HK-Medien
Formale Sprachen Grammatiken und die Chomsky-Hierarchie
1936: On Computable Numbers, with an application to the
Akzeptor & Sprache.
Formale Sprachen Reguläre Sprachen Rudolf FREUND, Marian KOGLER.
Entwurf und Implementierung eines Scanner-Generatorsystems
Natürliche und künstliche Sprachen
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.
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
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 3. Vorlesung
Arne Vater Wintersemester 2006/ 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.
Arne Vater Wintersemester 2006/ Vorlesung
Turing-Maschine als Akzeptor.
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
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Kapitel 4:Die Chomsky Hierarchie
Wann ist eine Funktion (über den natürlichen Zahlen) berechenbar?
Sprachen und Programmiersprachen
 Am Ende der letzten Stunde hatten wir über die Grenzen unserer Automaten-Modell gesprochen. Dr. Lars Ettelt2  Tipp: Parkhaus.  Einfahrt erst wenn.
 Präsentation transkript:

Städtisches Gymnasium Beverungen Friedel Berlage Formale Sprachen Städtisches Gymnasium Beverungen Friedel Berlage

natürliche – künstliche Sprachen natürliche Sprachen dienen der Kommunikation zwischen Menschen sind natürlich gewachsen, sind universal sind daher oft mehrdeutig formale Sprachen dienen bestimmten speziellen Zwecken Formelsprachen (Mathematik, Chemie, ....)‏ sind prägnant und eindeutig (oder sollten es sein)‏

Sprachkategorien Syntax Semantik Pragmatik Beschreibt den formalen Aufbau der Worte und Sätze wie schreibe ich etwas Semantik Bestimmt die inhaltliche Bedeutung was bedeutet dieser Satz Pragmatik Untersucht die Verwendung sprachlicher Gebilde in Handlungssituationen wann gebrauche ich welchen Ausdruck

Formale Sprachen in der Informatik Teilgebiet der theoretischen Informatik Einteilung der formalen Sprachen in Klassen Chomsky-Hierarchie Typ 0 bis Typ 3 Sprachen Bedeutung beim Übersetzen in Maschinensprache Compiler Interpreter

Compiler - Interpreter Übersetzt aus Hochsprache in Maschinensprache effizient muss vor dem Ablauf des Programms gemacht werden für jeden Prozessor ein anderer Compiler Interpreter arbeitet unmittelbar mit der Hochsprache lässt das eigentliche Programm ablaufen langsam unabhängig vom Prozessor

Übersetzungsphasen Analyse Synthese lexikalische Analyse Scanner zerlegt Eingabestrom in einzelne Symbole (Token)‏ syntaktische Analyse Automat zum Erkennender Struktur des Programms erkennt Schleifen, Methodenaufrufe und alle anderen Sprachelemente erkennt auch syntaktische Fehler (Rechtschreibfehler)‏ Synthese Erzeugt neues Programm in der Zielsprache

Phasen beim Compilieren

Automaten-Grammatiken erkennen Worte der Sprache Grammatiken erzeugen Worte der Sprache

endlicher Automat (Akzeptor)‏ 5 Tupel {∑ ,Z, z0,E,δ }gegeben durch: Eingabemenge ∑ Zustandsmenge Z Anfangszustand z0 genau ein Anfangszustand z0 Endzustände E mehrere Endzustände Übergangsfunktion δ Ordnet jedem Paar {z,x} einen neuen Zustand zu

Beispiel eines endlichen Automaten Welche Worte akzeptiert dieser Automat? Übergangstabelle Zustandsdiagramm Eingabemenge Zustände Er soll alle Worte erkennen, in denen „man“ vorkommt. Tut er das?

Nichtdeterministischer Automat Übergangstabelle keine Funktion sondern Relation es kann mehr als einen Nachfolgezustand geben Beispiel

Potenzmengenkonstruktion Zu jedem nichtdeterministischen Automaten existiert ein äquivalenter deterministischer Beide Arten sind also gleich mächtig, akzeptieren die gleichen Sprachen Die Anzahl der Zustände kann dabei aber explodieren (Potenzmenge (2n ))‏

Konstruktionsbeispiel Nichtdeterministischer Automat Deterministischer Automat Fasse die erreichten Zustände als neuen Zustand auf δ' δ a b s0' {s0} {s0,s1} {s0} s1' {s0,s1} {s0,s1} {s0,s2} s2' {s0,s2} {s0,s1,s3} {s0} s3' {s0,s1,s3} {s0,s1} {s0,s2}

Grammatiken Erzeugen Worte einer Sprache Legen die Syntax (Regeln) einer Sprache fest Formal ist eine Grammatik ein 4-Tupel G={V, ∑, P, S} V: Nichtterminal-Symbole ∑: Terminalsymbole P: Menge der Produktionen αAβ → γδε S: Startsymbol Üblicherweise werden Nichtterminale groß und Terminale klein geschrieben

Reguläre Grammatik Grammatik, die die von endlichen Automaten erkannten Sprachen erzeugt die Sprachen heißen reguläre Sprachen die Worte der Sprache auch reguläre Ausdrücke die Produktionsregeln sind stark eingeschränkt (Typ 3 Sprache)‏ für alle Produktionen gilt die Regel links darf nur ein Nichtterminal und rechts nur Nichtterminal- Terminal(linksregulär) bzw. Terminal- Nichtterminal (rechtsregulär) stehen (eingeschränkt kontextfrei)‏

Beispiel einer regulären Grammatik G={V, ∑, P, S} (rechtslineare Grammatik)‏ V={S,A,B} ; ∑={a,b} P={S→aB; S→bA; A→a; A→bB; B→aB; B→b} Einige Ableitungen S→aB B→b ► {a,b} S→bA A→bB B→aB B→b ► {bbab} Erzeugte reguläre Sprache?

Welche reguläre Sprache? P={S→aB; S→bA; A→a; A→bB; B→aB; B→b} welches sind die kürzesten Worte der Sprache? wie enden die meisten Wörter? welche Worte enden auf a? {bb} ε L ? welches ist das längste Wort? L={ba}u{a,bb}∙{a}*∙{b} das einzelne Wort {ba} oder ein Wort, das mit a oder bb anfängt, dann kommen beliebig viele a und am Schluss ein b

Grammatik ↔ Automat P={S→aB; S→bA; A→a; A→bB; B→aB; B→b} Nichtterminale werden Zustände Terminale werden Eingabesymbole Startsymbol wird Startzustand Produktionen werden Übergangsfunktion Produktionen ohne Nichtterminale werden Endzustände

Reguläre Sprache →kontextfreie Spr. reguläre Grammatiken sind in ihrer Ausdrucksstärke zu begrenzt, um als Programmiersprachen dienen zu können aufgrund ihrer endlich vielen Zustände können endliche Automaten potentiell-unendliche Strukturen nicht erkennen. so kann die Sprache L={anbn} für beliebig große n nicht erkannt, bzw. erzeugt werden damit können reguläre Grammatiken nicht einmal gewöhnliche mathematische Terme erzeugen für solche Strukturen werden Maschinen mit einem Stack benötigt.

Kellerautomat (PushDownAutomaton)‏ endlicher Automat, der um einen Stack(Keller) erweitert wurde Ausdruckskräftig genug, um die syntaktische Analyse von Programmiersprachen zu leisten deterministische Kellerautomaten (DPDA) sind schwächer als nichtdeterministische (NPDA)‏ NPDAs erkennen Worte (Programme) die von kontextfreien Grammatiken generiert werden i.A. reichen DPDAs, zur syntaktischen Analyse aus L={anbnam}u{ambnan}wird von NPDAs erkannt, aber nicht von DPDAs

Kellerautomat (PushDownAutomaton)‏

kontextfreie Grammatiken wichtigste Beschreibungsart für die Syntax von Programmiersprachen ( Ausdruck, Kontrollstrukt.)‏ erzeugen die kontextfreien Sprachen (Typ-2)‏ gleichwertige Beschreibungsarten: Backus-Naur-Formen Syntaxdiagramme

Produktionen kontextfr. Grammatiken Alle Regeln haben die Form: N → α als linke Regelseite sind nur einzelne Nichtterminale erlaubt so kann ein Nichtterminalsymbol unabhängig von seiner Umgebung (kontextfrei) ersetzt werden Beispiel: G={V, ∑, P, S} mit: V={S} ; ∑={a,b} ; P={S→ ε , S→ aSb} G erzeugt die kontextfreie Sprache L={anbn}, die keine reguläre Sprache ist kontextfreie Grammatiken können mehrdeutig sein x+y*z →(x+y) *z oder x+(y*z)‏

kontextsensitive Sprache (Typ-1)‏ formale Sprache, die von einer kontextsensitiven Grammatik erzeugt, und von linear beschränkten Turingmaschinen erkannt werden kann Produktionen der Grammatik haben die Form: α N β → α λ β das Nichtterminal N kann im Kontext α .. β durch λ ersetzt werden bei der Turingmaschine kann die Länge des Arbeitsbandes durch die Länge des Eingabewortes beschränkt sein sie sind mächtiger als kontextfreie Sprachen z.B. ist die Sprache L = {an bn cn } nicht kontextfrei

Allgemeine Sprachen (Typ-0)‏ Sprachen, die von Grammatiken ohne Einschränkungen erzeugt werden können sie werden von Turingmaschinen (und damit auch von Computern) erkannt Chomsky-Hierarchie: Ent : Entscheidbare Spr CS : Kontextsensitiv CF : Kontextfrei Lin : Lineare Grammat. DPDA: det.Kellerautomat RL : reguläre Sprache TM: Turingmaschine Auf: aufzählbare Spr. NLBA: nichtdeterminist. lin. beschr. Automat NPDA: nichtdeterminist. push-down-automaton RL : rechtslinear LL : linkslinear EA : endlicher Automat