Es ist ein Gerät, das beweisen soll, dass eine bestimmte Sprache nicht einer bestimmten Klasse angehören kann.
Betrachten wir die Sprache der ausgeglichenen Klammern (dh die Symbole '(' und ')' und einschließlich aller Zeichenfolgen, die in der üblichen Bedeutung ausgeglichen sind und keine, die dies nicht sind). Wir können das Pump-Lemma verwenden, um zu zeigen, dass dies nicht regelmäßig ist.
(Eine Sprache ist eine Reihe möglicher Zeichenfolgen. Ein Parser ist eine Art Mechanismus, mit dem wir feststellen können, ob sich eine Zeichenfolge in der Sprache befindet. Daher muss er in der Lage sein, den Unterschied zwischen einer Zeichenfolge in der Sprache und einer Zeichenfolge außerhalb zu erkennen Die Sprache. Eine Sprache ist "normal" (oder "kontextfrei" oder "kontextsensitiv" oder was auch immer), wenn es einen regulären (oder was auch immer) Parser gibt, der sie erkennen kann und zwischen Zeichenfolgen in der Sprache und Zeichenfolgen in der Sprache unterscheidet die Sprache.)
LFSR Consulting hat eine gute Beschreibung geliefert. Wir können einen Parser für eine reguläre Sprache als endliche Sammlung von Kästchen und Pfeilen zeichnen, wobei die Pfeile Zeichen darstellen und die Kästchen sie verbinden (als "Zustände" fungieren). (Wenn es komplizierter ist, ist es keine reguläre Sprache.) Wenn wir eine Zeichenfolge erhalten können, die länger als die Anzahl der Felder ist, bedeutet dies, dass wir ein Feld mehr als einmal durchlaufen haben. Das heißt, wir hatten eine Schleife und können die Schleife so oft durchlaufen, wie wir möchten.
Wenn wir für eine reguläre Sprache eine beliebig lange Zeichenfolge erstellen können, können wir sie in xyz unterteilen, wobei x die Zeichen sind, die wir zum Beginn der Schleife benötigen, y die eigentliche Schleife ist und z das ist, was auch immer wir sind müssen die Zeichenfolge nach der Schleife gültig machen. Wichtig ist, dass die Gesamtlängen von x und y begrenzt sind. Wenn die Länge größer als die Anzahl der Boxen ist, haben wir dabei offensichtlich eine andere Box durchlaufen, und so gibt es eine Schleife.
In unserer ausgewogenen Sprache können wir also zunächst eine beliebige Anzahl linker Klammern schreiben. Insbesondere können wir für einen bestimmten Parser mehr linke Parens schreiben als Kästchen, sodass der Parser nicht erkennen kann, wie viele linke Parens es gibt. Daher ist x eine gewisse Anzahl von linken Parens, und dies ist festgelegt. y ist auch eine Anzahl von linken Parens, und dies kann auf unbestimmte Zeit zunehmen. Wir können sagen, dass z eine Anzahl von richtigen Parens ist.
Dies bedeutet, dass wir möglicherweise eine Zeichenfolge von 43 linken und 43 rechten Parens haben, die von unserem Parser erkannt werden, aber der Parser kann dies nicht anhand einer Zeichenfolge von 44 linken und 43 rechten Parens erkennen, die nicht in unserer Sprache enthalten ist Der Parser kann unsere Sprache nicht analysieren.
Da jeder mögliche reguläre Parser eine feste Anzahl von Feldern hat, können wir immer mehr linke Parens schreiben, und durch das Pump-Lemma können wir dann mehr linke Parens auf eine Weise hinzufügen, die der Parser nicht erkennen kann. Daher kann die ausgeglichene Sprache in Klammern nicht von einem regulären Parser analysiert werden und ist daher kein regulärer Ausdruck.