チューリングとセルラーマシンのシミュレーションを必要とする問題を解決するための正規表現の使用の例。セルラーマシンは、さまざまな条件に位置し、隣人の条件に応じて、時間とともに変化する多くのセルで構成される複雑なシステムです。セルラーマシンはチューリングファクトルです。つまり、予測可能な機能を計算できます。

正規表現は、隣接する条件に応じて各セルの動作を定義することにより、テキスト形式のセルラーマシンを記述するために使用できます。そのような説明の例は次のとおりです。

（0 [01]*1 | 1 [10]*0）+

この正規表現は、繰り返しシーケンスで交互に配置された0ENと1ENのエピソードで構成されるセルラーマシンについて説明しています。この式では、「|」構文を使用して、隣接する細胞の条件に基づいて代替状態遷移を定義します。たとえば、「01]*1」という式は、値が0のセルで、次に0ENまたは1ENの任意の数のセルが続くことを意味し、次に1のセルが状態転送に続きます。

正規表現には、セルラーマシンのすべての機能が含まれているわけではありませんが、このように使用して簡単なセルラーマシンを定義およびシミュレートできます。
Ein Beispiel für die Verwendung von regulären Ausdrücken zur Lösung eines Problems, das Turing-Vollständigkeit erfordert, ist die Simulation von Zellularautomaten. Zellularautomaten sind komplexe Systeme, die aus einer Menge von Zellen bestehen, die sich in verschiedenen Zuständen befinden und in Abhängigkeit von den Zuständen ihrer Nachbarn über die Zeit hinweg verändern. Zellularautomaten sind Turing-vollständig, was bedeutet, dass sie jede berechenbare Funktion berechnen können.

Reguläre Ausdrücke können verwendet werden, um Zellularautomaten in einem Textformat zu beschreiben, indem sie das Verhalten jeder Zelle in Abhängigkeit von den Zuständen ihrer Nachbarn definieren. Ein Beispiel für eine solche Beschreibung wäre:

(0[01]*1|1[10]*0)+

Dieser reguläre Ausdruck beschreibt einen Zellularautomaten, der aus einer Folge von 0en und 1en besteht, die abwechselnd in einer sich wiederholenden Sequenz angeordnet sind. Der Ausdruck verwendet die "|"-Syntax, um alternative Zustandsübergänge zu definieren, basierend auf dem Zustand der Nachbarzellen. Zum Beispiel bedeutet der Ausdruck "0[01]*1", dass eine Zelle mit einem Wert von 0, gefolgt von einer beliebigen Anzahl von 0en oder 1en, gefolgt von einer Zelle mit einem Wert von 1, zu einem Zustandsübergang führt.

Obwohl reguläre Ausdrücke nicht alle Funktionen von Zellularautomaten umfassen, können sie auf diese Weise verwendet werden, um einfache Zellularautomaten zu definieren und zu simulieren.