Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Formale Sprachen Städtisches Gymnasium Beverungen Friedel Berlage.

Ähnliche Präsentationen


Präsentation zum Thema: "Formale Sprachen Städtisches Gymnasium Beverungen Friedel Berlage."—  Präsentation transkript:

1 Formale Sprachen Städtisches Gymnasium Beverungen Friedel Berlage

2 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)

3 Sprachkategorien Syntax 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

4 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

5 Compiler - Interpreter Compiler Ü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

6 Übersetzungsphasen Analyse 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

7 Phasen beim Compilieren

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

9 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

10 Beispiel eines endlichen Automaten Welche Worte akzeptiert dieser Automat? Übergangstabelle Zustandsdiagramm Er soll alle Worte erkennen, in denen man vorkommt. Tut er das?

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

12 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 (2 n ))

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

14 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

15 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)

16 Beispiel einer regulären Grammatik G={V,, P, S} (rechtslineare Grammatik) V={S,A,B} ; ={a,b} P={SaB; SbA; Aa; AbB; BaB; Bb} Einige Ableitungen SaB Bb {a,b} SbA AbB BaB Bb {bbab} Erzeugte reguläre Sprache?

17 Welche reguläre Sprache? P={SaB; SbA; Aa; AbB; BaB; Bb} 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

18 Grammatik Automat P={SaB; SbA; Aa; AbB; BaB; Bb} Nichtterminale werden Zustände Terminale werden Eingabesymbole Startsymbol wird Startzustand Produktionen werden Übergangsfunktion Produktionen ohne Nichtterminale werden Endzustände

19 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={a n b n } 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.

20 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={a n b n a m }u{a m b n a n }wird von NPDAs erkannt, aber nicht von DPDAs

21 Kellerautomat (PushDownAutomaton)

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

23 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={a n b n }, die keine reguläre Sprache ist kontextfreie Grammatiken können mehrdeutig sein x+y*z (x+y) *z oder x+(y*z)

24 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 = {a n b n c n } nicht kontextfrei

25 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


Herunterladen ppt "Formale Sprachen Städtisches Gymnasium Beverungen Friedel Berlage."

Ähnliche Präsentationen


Google-Anzeigen