Reguläre Grammatik: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Definition= Eine '''Grammatik''' G wird durch ein 4-Tupel (N, T, S, P) definiert: * N ist die Menge der '''Nichtterminalsymbole'''. * T ist die Menge der '''T…“)
 
Zeile 22: Zeile 22:
* '''Terminalsymbole''' T = {0,...,9}
* '''Terminalsymbole''' T = {0,...,9}
* '''Startsymbol''' S = S
* '''Startsymbol''' S = S
* '''Produktionsregeln P = {
* '''Produktionsregeln P = {'''
** S → 0A | 1S | 2S | ... | 9S
** S → 0A | 0S | 1S | 2S | ... | 9S
** A → 0B | 1S | 2S | ... | 9S
** A → 0B
** B → 0B | 7C | 1S | 2S | ... | 6S | 8S | 9S
** B → 7C  
** C → ε | 0C | ... | 9C
** C → ε | 0C | ... | 9C
* '''}'''
==Beispiel für die Ableitung eines Wortes==
Dass das Wort "060074" zu der KGB-Sprache gehört, lässt sich durch folgende Ableitung zeigen:
* S → 0S → 06S → 060A → 0600B → 06007C → 06007
Bei der letzten Ableitung wurde das C durch nichts (ε) ersetzt.
==Beziehung zu deterministischen endlichen Automaten==
* '''Zu jeder [[reguläre Grammatik|regulären Grammatik]] gibt es einen deterministischen endlichen Automaten.'''<br>
** Dazu erstellt man aus der regulären Grammatik erst einen [[Nicht-deterministischer endlicher Automaten|Nicht-deterministischen endlichen Automaten]], indem man aus jedem Nichtterminalsymbol einen Zustand macht und aus jeder Produktionsregel einen Übergang.
** Aus dem [[Nicht-deterministischer endlicher Automaten|Nicht-deterministischen endlichen Automaten]] kann man einen deterministischen endlichen Automaten erstellen. Das ist mühsam, aber es ist bewiesen, dass das immer geht!
* '''Zu jedem deterministischen endlichen Automaten gibt es eine [[reguläre Grammatik]].''' <br>''Diese lässt sich leicht aus dem Übergangsgraphen konstruieren.''

Version vom 23. Februar 2015, 08:24 Uhr

Definition

Eine Grammatik G wird durch ein 4-Tupel (N, T, S, P) definiert:

  • N ist die Menge der Nichtterminalsymbole.
  • T ist die Menge der Terminalsymbole.
  • S ∈ N ist das Startsymbol.
  • P ist die Menge der Produktionsregeln.

reguläre Grammatik: Grammatiken, bei denen alle Produktionen die folgenden Formen haben, sind regulär:

  • A → aB      d.h. A wird ersetzt durch ein Terminalsymbol gefolgt von einem Nichtterminalsymbol'
  • A → a      d.h. A wird ersetzt durch ein Terminalsymbol.
  • A → ε      d.h. A wird ersetzt durch nichts. (ε steht für nichts.)

Beispiel

Die KGB-Sprache:

Die KGB-Sprache besteht aus allen Ziffernfolgen, die irgendwo die Zahlenkette "007" enhalten.

Die Grammatik G der KGB-Sprache kann wie folgt definiert werden:

  • G= (N, T, S, P)
  • Nichtterminalsymbole N = {S, A, B, C}
  • Terminalsymbole T = {0,...,9}
  • Startsymbol S = S
  • Produktionsregeln P = {
    • S → 0A | 0S | 1S | 2S | ... | 9S
    • A → 0B
    • B → 7C
    • C → ε | 0C | ... | 9C
  • }

Beispiel für die Ableitung eines Wortes

Dass das Wort "060074" zu der KGB-Sprache gehört, lässt sich durch folgende Ableitung zeigen:

  • S → 0S → 06S → 060A → 0600B → 06007C → 06007

Bei der letzten Ableitung wurde das C durch nichts (ε) ersetzt.

Beziehung zu deterministischen endlichen Automaten