Unterschied zwischen regulärem Ausdruck und kontextfreier Grammatik

Inhaltsverzeichnis:

Anonim

Die Hauptunterschied zwischen regulärem Ausdruck und kontextfreier Grammatik ist, dass die reguläre Ausdrücke helfen dabei, alle Strings einer regulären Sprache zu beschreiben, während die kontextfreie Grammatik hilft, alle möglichen Strings einer kontextfreien Sprache zu definieren.

Grammatik bezeichnet syntaktische Regeln für die Konversation in natürlichen Sprachen. Die Informatik verwendet in hohem Maße die Theorie der formalen Sprachen. Im Jahr 1956 lieferte Noam Chomsky ein mathematisches Grammatikmodell zum Schreiben von Computersprachen. Wenn es möglich ist, eine Menge aller Strings aus einer Grammatik abzuleiten, wird die Sprache aus dieser Grammatik generiert. Zwei Arten von Grammatik sind die reguläre Grammatik und die kontextfreie Grammatik. Jede Sprache, die durch einen regulären Ausdruck beschrieben werden kann, ist eine reguläre Sprache. Kontextfreie Grammatik ist eine Verallgemeinerung des regulären Ausdrucks. Es ist möglich, reguläre Ausdrücke zu verwenden, um reguläre Sprachen zu schreiben, und kontextfreie Grammatik, um kontextfreie Grammatik zu schreiben.

Regulärer Ausdruck, kontextfreie Grammatik

Was ist ein regulärer Ausdruck?

Die reguläre Grammatik erzeugt reguläre Sprachen. Diese Grammatik hat ein einzelnes Nichtterminal auf der linken Seite und eine rechte Seite, die aus einem einzelnen Terminal oder einem einzelnen Terminal gefolgt von einem einzelnen Nichtterminal besteht. Es kann eine Produktionsregel wie folgt haben.

X -> a oder X -> a Y

Wobei X, Y ϵ N (nicht-terminal) und a ϵ T (terminal)

Reguläre Ausdrücke helfen dabei, reguläre Grammatik zu schreiben, um reguläre Sprachen zu beschreiben.

Ein regulärer Ausdruck repräsentiert eine bestimmte Menge von Strings auf algebraische Weise. Einige wichtige Regeln, die beim Schreiben eines regulären Ausdrucks zu beachten sind, sind wie folgt.

  1. Die Terminalsymbole, das Nullsymbol und das leere Symbol sind reguläre Ausdrücke.
  2. Die Vereinigung zweier regulärer Ausdrücke ist ein regulärer Ausdruck.
  3. Die Verkettung zweier regulärer Ausdrücke ist ein regulärer Ausdruck.
  4. Iteration oder Closure ist ein regulärer Ausdruck.

Der reguläre Ausdruck für die Menge {0, 1, 2} lautet wie folgt.

R = 0 + 1+2

Die Menge {abb, a, b, bba} kann durch den folgenden regulären Ausdruck dargestellt werden.

R = abb + a + b + bba

Betrachten Sie die Menge {ϵ, 0, 00, 000, …}

Das ϵ ist die leere Zeichenfolge. Der reguläre Ausdruck ist R = 0*. Dies stellt den Abschluss des Symbols einschließlich des leeren Symbols dar.

Im Set {1, 11, 111, 1111, …..}

Der reguläre Ausdruck ist R = 1 +. Dieses + bezeichnet den Abschluss eines Symbols ohne das leere Symbol.

Was ist kontextfreie Grammatik?

In der formalen Sprachtheorie ist Context Free Language (CFL) eine Sprache, die durch kontextfreie Grammatik generiert wird. Vier Parameter definieren kontextfreie Grammatik (G).

G= {V, ∑, S, P}

V: Satz variabler oder nicht-terminaler Symbole.

∑: Reihe von Klemmensymbolen

S: Startsymbol

P: Produktionsregel

Kontextfreie Grammatik hat das folgende Format für die Produktionsregel.

A -> a wobei a = {V, ∑ }* und A ϵ V

Ein Beispiel für kontextfreie Grammatik ist wie folgt. Jede Produktion besteht aus einem nicht-terminalen Symbol und einem regulären Ausdruck.

Zum Generieren einer Sprache, die eine gleiche Anzahl von a und b erzeugt, hat das Format a B . Die kontextfreie Grammatik ist wie folgt.

G = {(S, A), (a, b), (S -> aAb, A -> aAb | ϵ)}

Betrachtet man das Startsymbol,

S – > a A b

Durch Anwenden von A -> aAb

→ a a a b b

Durch erneutes Anwenden von A -> aAb,

→ a a a A b b b

Durch Anwenden von A -> ϵ (Dieses Symbol bezeichnet einen leeren String)

→ a a a b b b

→ a 3 B 3

Bei der Betrachtung der Ausgabe ist die Anzahl der a gleich der Anzahl der b. Es hat die a B Form.

Beziehung zwischen regulärem Ausdruck und kontextfreier Grammatik

Unterschied zwischen regulärem Ausdruck und kontextfreier Grammatik

Definition

Ein regulärer Ausdruck ist ein Konzept in der formalen Sprachtheorie, bei dem es sich um eine Folge von Zeichen handelt, die ein Suchmuster definieren. Kontextfreie Grammatik ist eine Form der formalen Grammatik in der formalen Sprachtheorie, bei der es sich um eine Reihe von Produktionsregeln handelt, die alle möglichen Zeichenfolgen in einer bestimmten formalen Sprache beschreiben.

Verwendungszweck

Reguläre Ausdrücke helfen bei der algebraischen Darstellung bestimmter Strings. Es hilft, reguläre Sprachen darzustellen. Kontextfreie Grammatik hilft, alle möglichen Zeichenketten einer kontextfreien Sprache zu definieren.

Abschluss

Ein regulärer Ausdruck ist eine Methode zum Mustervergleich. Es ist eine flexible Methode, um ein flexibles und prägnantes Mittel zum Abgleichen von Textzeichenfolgen bereitzustellen. Es definiert alle Strings in der regulären Sprache. Andererseits erlaubt die kontextfreie Grammatik die Definition aller Strings, die zu einer kontextfreien Sprache gehören. Der Unterschied zwischen regulären Ausdrücken und kontextfreier Grammatik besteht darin, dass die regulären Ausdrücke helfen, alle Strings einer regulären Sprache zu beschreiben, während die kontextfreie Grammatik hilft, alle möglichen Strings einer kontextfreien Sprache zu definieren.

Referenz:

1. „Reguläre Ausdrücke“. Www.tutorialspoint.com, Tutorials Point, 8. Januar 2018, hier verfügbar.2. „Einführung in die kontextfreie Grammatik“. Www.tutorialspoint.com, Tutorials Point, 8. Januar 2018, hier verfügbar.

Bild mit freundlicher Genehmigung:

1. „Toolbaricon RegEx“ von M0tty – Eigene Arbeit (CC BY-SA 4.0) über Commons Wikimedia

Unterschied zwischen regulärem Ausdruck und kontextfreier Grammatik