Regelmäßige Sprache

In der theoretischen Informatik und formellen Sprachtheorie ist eine regelmäßige Sprache eine formelle Sprache, die mit einem regelmäßigen Ausdruck ausgedrückt werden kann. Bemerken Sie, dass der "regelmäßige Ausdruck" mit vielen Programmiersprachen versorgte Eigenschaften mit Eigenschaften vermehrt wird, die sie fähig dazu machen, Sprachen das anzuerkennen

kann durch die formellen regelmäßigen Ausdrücke (wie formell definiert, unten) nicht ausgedrückt werden.

In der Hierarchie von Chomsky werden regelmäßige Sprachen definiert, um die Sprachen zu sein, die durch Grammatiken des Typs 3 (regelmäßige Grammatiken) erzeugt werden. Regelmäßige Sprachen sind in der Eingangssyntaxanalyse und dem Programmiersprache-Design sehr nützlich.

Formelle Definition

Die Sammlung von regelmäßigen Sprachen über ein Alphabet Σ wird rekursiv wie folgt definiert:

  • Die leere Sprache Ø ist eine regelmäßige Sprache.
  • Für jeden ein  Σ (ein Gehören Σ), die Singleton-Sprache einer regelmäßigen Sprache zu sein.
  • Wenn A und B regelmäßige Sprachen, dann Ein  B (Vereinigung), A sind · B (Verkettung) und A* (Stern von Kleene) sind regelmäßige Sprachen.
  • Keine anderen Sprachen über Σ sind regelmäßig.

Sieh regelmäßigen Ausdruck für seine Syntax und Semantik. Bemerken Sie, dass die obengenannten Fälle tatsächlich die Definieren-Regeln des regelmäßigen Ausdrucks sind.

Beispiele

Alle begrenzten Sprachen sind regelmäßig; insbesondere ist die leere Schnur-Sprache {ε} = Ø* regelmäßig. Andere typische Beispiele schließen die Sprache ein, die aus allen Schnuren über das Alphabet {a, b} besteht, die eine gerade Zahl als, oder die Sprache enthalten, die aus allen Schnuren der Form besteht: mehrere, wie gefolgt, von mehrerem Bakkalaureus der Naturwissenschaften.

Ein einfaches Beispiel einer Sprache, die nicht regelmäßig ist, ist der Satz von Schnuren. Intuitiv kann es nicht mit einem begrenzten Automaten anerkannt werden, da ein begrenzter Automat begrenztes Gedächtnis hat und es sich an die genaue Zahl von a's nicht erinnern kann. Techniken, um diese Tatsache zu beweisen, werden streng unten gegeben.

Gleichwertigkeit zu anderen Formalismen

Eine regelmäßige Sprache befriedigt die folgenden gleichwertigen Eigenschaften:

  • es kann durch einen (nichtdeterministischen) begrenzten Automaten, sondern auch durch den eingeschränkten deterministischen begrenzten Automaten oder den allgemeineren begrenzten Wechselautomaten akzeptiert werden
  • es kann durch eine regelmäßige Grammatik erzeugt werden
  • es kann durch eine Präfix-Grammatik erzeugt werden
  • es kann durch eine Read-Only-Maschine von Turing akzeptiert werden
  • es kann in der monadischen Logik der zweiten Ordnung definiert werden
  • es wird durch einen begrenzten monoid anerkannt, bedeutend, dass es das Vorimage einer Teilmenge eines begrenzten monoid unter einem Homomorphismus vom freien monoid auf seinem Alphabet ist

Die obengenannten Eigenschaften werden manchmal als alternative Definition von regelmäßigen Sprachen verwendet.

Verschluss-Eigenschaften

Die regelmäßigen Sprachen werden unter den verschiedenen Operationen geschlossen, d. h. wenn die Sprachen K und L regelmäßig sind, auch ist das Ergebnis der folgenden Operationen:

  • der Satz theoretische Operationen von Boolean: Vereinigung, Kreuzung und Ergänzung. Davon folgt auch Unterschied.
  • die regelmäßigen Operationen: Vereinigung, Verkettung und Stern von Kleene.
  • die Trio-Operationen: Schnur-Homomorphismus, Gegenteil spannt Homomorphismus und Kreuzung mit regelmäßigen Sprachen. Demzufolge werden sie unter dem willkürlichen Endzustand transductions wie Quotient mit einer regelmäßigen Sprache geschlossen. Noch mehr werden regelmäßige Sprachen unter Quotienten mit willkürlichen Sprachen geschlossen: Wenn L dann regelmäßig ist, ist L/K für jeden K regelmäßig.
  • die Rückseite (oder Spiegelimage).

Das Entscheiden, ob eine Sprache regelmäßig

ist

Um die regelmäßigen Sprachen in der Hierarchie von Chomsky ausfindig zu machen, bemerkt man, dass jede regelmäßige Sprache ohne Zusammenhänge ist. Das gegenteilige ist nicht wahr: Zum Beispiel ist die Sprache, die aus allen Schnuren besteht, die dieselbe Zahl wie als Bakkalaureus der Naturwissenschaften haben, ohne Zusammenhänge, aber nicht regelmäßig. Um zu beweisen, dass eine Sprache wie das regelmäßig ist, verwendet man den Myhill-Nerode Lehrsatz oder das pumpende Lemma.

Es gibt zwei rein algebraische Annäherungen, um regelmäßige Sprachen zu definieren. Wenn:

  • Σ ist ein begrenztes Alphabet,
  • Σ* zeigt den freien monoid über Σ an, der aus allen Schnuren über Σ, besteht
  • f: Σ*  M ist ein monoid Homomorphismus, wo M ein begrenzter monoid, ist
  • S ist eine Teilmenge der M

dann ist der Satz regelmäßig. Jede regelmäßige Sprache entsteht auf diese Mode.

Wenn L eine Teilmenge von Σ * ist, definiert man eine Gleichwertigkeitsbeziehung ~ (hat die syntaktische Beziehung genannt) auf Σ* wie folgt: u ~ wird v definiert, um zu bedeuten

:uw ∈ L wenn und nur wenn vw ∈ L für den ganzen w ∈ Σ*

Die Sprache L ist regelmäßig, wenn, und nur wenn die Zahl von Gleichwertigkeitsklassen von ~ begrenzt ist (Wird ein Beweis davon im Artikel über den syntaktischen monoid zur Verfügung gestellt). Wenn eine Sprache dann regelmäßig ist, ist die Zahl von Gleichwertigkeitsklassen der Zahl von Staaten des minimalen deterministischen begrenzten Automaten gleich, der L akzeptiert.

Ein ähnlicher Satz von Behauptungen kann für einen monoid formuliert werden. In diesem Fall führt die Gleichwertigkeit über die M zum Konzept einer erkennbaren Sprache.

Kompliziertheitsergebnisse

In der rechenbetonten Kompliziertheitstheorie wird die Kompliziertheitsklasse aller regelmäßigen Sprachen manchmal REGELMÄßIG oder REG genannt und kommt DSPACE gleich (O (1)), die Entscheidungsprobleme, die im unveränderlichen Raum gelöst werden können (ist der verwendete Raum der Eingangsgröße unabhängig). REGELMÄßIGER  AC, da es (trivial) das Paritätsproblem der Bestimmung enthält, ob die Zahl von 1 Bit im Eingang sogar oder seltsam und dieses Problem ist, ist nicht in AC. Andererseits, REGELMÄßIG enthält AC nicht, weil die nichtregelmäßige Sprache von Palindromen oder die nichtregelmäßige Sprache beide in AC anerkannt werden kann.

Wenn eine Sprache nicht regelmäßig ist, verlangt sie eine Maschine mit mindestens Ω (Klotz loggt n) Raum, um anzuerkennen (wo n die Eingangsgröße ist). Mit anderen Worten kommt DSPACE (o (Klotz loggen n)) der Klasse von regelmäßigen Sprachen gleich. In der Praxis werden nichtregelmäßigste Probleme durch Maschinen behoben, die mindestens logarithmischen Raum nehmen.

Unterklassen

Wichtige Unterklassen von regelmäßigen Sprachen schließen ein

  • Begrenzte Sprachen - diejenigen, die nur eine begrenzte Zahl von Wörtern enthalten. Das sind regelmäßige Sprachen, weil man einen regelmäßigen Ausdruck schaffen kann, der die Vereinigung jedes Wortes auf der Sprache ist.
  • Sternfreie Sprachen, die alle begrenzten Sprachen einschließen.

Die Zahl von Wörtern auf einer regelmäßigen Sprache

Für jede unendliche regelmäßige Sprache dort bestehen Konstanten und Polynome

solch, dass für jeden die Zahl von Wörtern der Länge darin die Gleichung befriedigt

.

So kann die Nichtregelmäßigkeit von einer unendlichen Sprache durch das Zählen der Wörter einer gegebenen Länge in bewiesen werden

., Denken Sie zum Beispiel, die Sprache von Dyck von Reihen von erwogenen Parenthesen. Die Zahl von Wörtern der Länge

in Dyck ist Sprache der katalanischen Zahl gleich, die nicht von der Form, ist

das Zeugen der Nichtregelmäßigkeit der Sprache von Dyck.

Generalisationen

Der Begriff einer regelmäßigen Sprache ist zu unendlichen Wörtern verallgemeinert worden (sieh ω-automata), und zu Bäumen (sieh Baumautomaten).

Siehe auch

  • Das Pumpen des Lemmas für regelmäßige Sprachen
  • Vereinigung von zwei regelmäßigen Sprachen
  • Kapitel 1: Regelmäßige Sprachen, pp.31-90. Paragraph "Entscheidbare Probleme Bezüglich Regelmäßiger Sprachen" des Abschnitts 4.1: Entscheidbare Sprachen, pp.152-155.

Links


Roter Zwerg / Bezugsarbeit
Impressum & Datenschutz