Frage

Ich lerne für mein Rechen Sprachen Test, und es gibt eine Idee, die ich um Probleme Einwickeln meinem Kopf habe.

Ich verstand, dass regelmäßige Grammatiken sind einfacher und kann Mehrdeutigkeit nicht enthalten, kann aber eine Menge von Aufgaben, die nicht tun, die für Programmiersprachen erforderlich sind. Ich verstand auch, dass kontextfreie Grammatiken Zweideutigkeit erlauben, aber für einige Dinge, die für Programmiersprachen (wie Palindrome) zu ermöglichen.

Was ich habe Probleme mit ist zu verstehen, wie ich alle oben ableiten kann durch das Wissen, dass regelmäßige Grammatik nonterminals kann an einen Terminal Karte oder ein Nicht-Terminal von einem Terminal oder dass ein kontext- gefolgt kostenlos Nicht-End-Karten auf eine beliebige Kombination von Terminals und nonterminals.

Kann mir jemand helfen, zusammen all dies zu setzen?

War es hilfreich?

Lösung

Regelmäßige Grammatik ist entweder richtig oder linear nach links, während kontextfreie Grammatik ist im Grunde eine beliebige Kombination von Terminals und Nicht-Terminals. Daher können Sie sehen, dass die regelmäßige Grammatik eine Teilmenge der kontextfreien Grammatik ist.

Also für einen Palindrom zum Beispiel ist von der Form,

S->ABA
A->something
B->something

Sie können deutlich sehen, dass Palindrome nicht in regelmäßiger Grammatik ausgedrückt werden, da es keinen nicht-Terminal auf beiden Seiten haben kann, muss entweder nach rechts oder links linear und als solche sein.

Da reguläre Grammatiken sind nicht mehrdeutig, gibt es nur eine Produktionsregel für einen bestimmten nicht-Terminal, während es kann mehr als man im Falle einer kontextfreien Grammatik.

Andere Tipps

Ich denke, was Sie denken wollen über die verschiedenen Pump Lemmata sind. Eine reguläre Sprache kann durch einen endlichen Automaten erkannt werden. Eine kontextfreie Sprache erfordert einen Stapel und eine kontextsensitive Sprach erfordert zwei Stapel (die zu sagen, es ist äquivalent erfordert eine vollständige Turing Maschine.)

Wenn wir also über die Lemma Pumpen für reguläre Sprachen , was sie sagt, im Wesentlichen , ist, dass jede reguläre Sprache drei Teile gegliedert werden kann, x y und z , wobei alle Instanzen der Sprache sind in xy * z (wobei * Kleene Wiederholung, dh 0 oder mehr Kopien von y .) Sie haben im Grunde ein "Nicht-End", das erweitert werden kann.

Nun, was über kontextfreie Sprachen? Es gibt eine analoge Pumping-Lemma für kontextfreie Sprachen , die die Zeichenfolgen in der Sprache, in fünf bricht Teile, uvxyz , und wo alle Instanzen der Sprache sind in uv i xy i z , für i ≥ 0. Nun haben Sie zwei "Nicht-Terminals", die repliziert werden können, oder gepumpt, , solange Sie die gleiche Nummer haben .

Der Unterschied zwischen regulärer und kontextfreie Grammatik: (N, Σ, P, S): Klemmen, nonterminals produktions Zustand Klemmen Symbole beginnend

● elementare Symbole der Sprache durch eine formale Grammatik definiert

● abc

Nonterminal Symbole (oder syntaktische Variablen)

● durch Gruppen von Terminal-Symbole ersetzt gemäß den Produktionsregeln

● ABC

regelmäßige Grammatik: rechts oder links regelmäßige Grammatik Recht regelmäßige Grammatik, alle Regeln befolgen, die Formen

  1. B → a, wobei B ein Nicht-Terminal in N ist und a ein Terminal in Σ
  2. B → aC, wobei B und C sind in N und a in Σ
  3. B → ε wobei B in N und ε bezeichnet die leere Zeichenkette, das heißt die Zeichenfolge der Länge 0

links regelmäßige Grammatik, alle Regeln befolgen, die Formen

  1. A → a wobei A ein Nicht-Terminal in N ist und a ein Terminal in Σ
  2. A → Ba, wobei A und B sind in N und a in Σ
  3. A → ε, wobei A in N und ε ist die leere Zeichenfolge

kontextfreie Grammatik (CFG)

○ formale Grammatik, in dem jede Produktionsregel ist von der Form V → w

○ V ist ein einzelne Nicht-End-Symbol

w ○ ist eine Reihe von Klemmen und / oder Nicht-Terminals (w kann leer sein)

Reguläre Ausdrücke

  • Basis der lexikalischen Analyse
  • Sie sind reguläre Sprachen

Context Free Grammatiken

  • Basis von Parsen
  • Sie sind Sprachkonstrukte

eingeben Bild Beschreibung hier

Regelmäßige Grammatik: - Grammatik enthält, die Produktion wie folgt RG:

V->TV or VT
V->T

wobei V = variabel und T = Terminal

RG können Links Linear Grammatik oder Recht Liner Grammatik, aber nicht Middle lineare Grammatik.

Wie wir alle RG kennen, sind lineare Grammatik aber nur links Linear oder rechts Linear Grammatik sind RG.

Eine regelmäßige Grammatik kann mehrdeutig sein.

S->aA|aB
A->a
B->a

Mehrdeutige Grammatik: -. für einen String x ihre existieren mehr als eine LMD oder mehr als RMD oder mehr als ein Parse-Baum oder eine LMD und eine RMD aber beide produzieren verschiedene Parse Baum

                S                   S

              /   \               /   \
             a     A             a     B
                    \                   \
                     a                   a

Diese Grammatik ist mehrdeutig Grammatik, weil zwei Parse-Baum.

CFG: - Eine Grammatik sagte CFG werden, wenn seine Produktion in Form ist:

   V->@   where @ belongs to (V+T)*

DCFL-: - wie wir alle wissen, sind DCFL- LL (1) Grammatik und alle LL (1) LR (1), so ist es nie zweideutig sein. so DCFG ist niemals mehrdeutig sein.

Wir wissen auch alle RL sind DCFL- so RL nie zweideutig sein. Beachten Sie, dass RG mehrdeutig sein kann, aber RL nicht.

CFL:. CFl kann oder nicht mehrdeutig

. Hinweis: RL nie Inherently mehrdeutig sein

Eine Grammatik ist kontextfrei, wenn alle Produktionsregeln haben die Form: A (das heißt, kann die linke Seite einer Regel nur eine einzige Variable sein, die rechte Seite ist uneingeschränkt und kann eine beliebige Folge von Terminals und Variablen) . Wir können eine Grammatik als ein 4-Tupel definieren, wo V eine endliche Menge ist (Variablen), _ eine endliche Menge (Klemmen), S ist die Startvariable und R eine endliche Menge von Regeln, von denen jede eine Abbildung V
reguläre Grammatik ist entweder nach rechts oder links linear, während der kontextfreien Grammatik ist im Grunde genommen ein beliebige Kombination von Anschlüssen und Nicht-Terminals. daher können wir sagen, dass die regelmäßige Grammatik eine Teilmenge der kontextfreien Grammatik ist. Nach diesen Eigenschaften können wir das Context Free Sprachen sagen setzten auch Regular Sprachen eingestellt

enthält

Im Grunde regelmäßige Grammatik ist eine Teilmenge von kontextfreier Grammatik, aber wir können nicht jeder Kontext frei sagen Grammatik eine reguläre Grammatik ist. Vor allem freien Kontext Grammatik ist mehrdeutig und regelmäßige Grammatik mehrdeutig sein kann.

eine regelmäßige grammer ist nie eindeutig, da sie entweder links oder rechts linear linear ist so kippen wir zwei Entscheidungsbaum für die regelmäßigen grammer machen, so dass es immer unambiguous.but othert als reguläre Grammatik kann alle sind oder nicht regelmäßig sein

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top