Nicht ganz. Eine Turingmaschine wird durch dieses mathematische Objekt beschrieben:
(Q,Σ,δ,H,q0,b)
Wo
- Q ist eine endliche Menge von Zuständen
- Σist ein Alphabet , eine endliche Menge von Symbolen
- δ:Q×Σ→Q×Σ×{⇐,⇒} ist eine Übergangsfunktion
- H⊆Qist die Menge der Haltezustände
- q0∈Q ist der Ausgangszustand
- b∈Σ ist das "leere" Symbol
Die Maschine nimmt eine Eingabezeichenfolge, x∈Σ∗und verwendet die Übergangsfunktion, um einzelne Symbole in dieser Zeichenfolge bis iterativ zu aktualisieren δ Gibt einen Status zurück, der zu gehört H. An diesem Punkt sagen wir, dass die Maschine angehalten hat - was sie möglicherweise jemals tun wird oder nicht.
Im Vergleich dazu sind formale Sprachen viel einfachere Objekte. Eine Sprache ist nur eine Teilmenge der Menge aller Zeichenfolgen über einem Alphabet. Mit anderen Worten,L⊆Σ∗, wo ∗ist der Kleene- Sternbetreiber.
Die Verbindung besteht darin, dass Turing-Maschinen verwendet werden können, um formale Sprachen zu definieren . Zum Beispiel:
L={x∈Σ∗|M halts when given ⟨x⟩ as input }
Definiert die formale Sprache L in Bezug auf die Turing-Maschine M. Für eine Sprache,L, wenn es eine Turing-Maschine gibt, die genau dann anhält, wenn ihre Eingabe dazu gehört Ldann heißt die Sprache Turing-erkennbar . Einige Sprachen können von keiner Turing-Maschine definiert werden, was bedeutet, dass sie nicht berechenbar sind - kein endlicher Prozess kann entscheiden, ob eine beliebige Zeichenfolge zur Sprache gehört oder nicht.
Formale Sprachen sind nicht dasselbe wie Turing-Maschinen, aber die Turing-Erkennbarkeit hat einen interessanten Platz beim Studium formaler Sprachen. In der Chomsky-Hierarchie ist eine Sprache vom Typ 0 eine Sprache, die von jeder formalen Grammatik aufgezählt werden kann, und dies entspricht der Erkennung durch eine Turing-Maschine! Formale Grammatiken und Turing-Maschinen sind nur zwei von vielen Rechenmodellen, die alle gleich leistungsfähig sind!
Es wird allgemein angenommen, dass jedes Rechenmodell die gleiche Unterscheidung zwischen berechenbaren und nicht berechenbaren Sprachen trifft - dieser Begriff wird als Church-Turing-These bezeichnet .
EDIT: Meine Terminologie war nicht korrekt, als ich dies zum ersten Mal schrieb. Eine Turing-entscheidbare Sprache kann von einer Maschine entschieden werden, die immer anhält und ein definitives Ja oder Nein gibt, ob ihre Eingabe zur Sprache gehört. Wenn wir nur verlangen, dass die Maschine Mitglieder akzeptiert, aber Nichtmitglieder nicht unbedingt ablehnen kann, wird die zugehörige Sprache als Turing erkennbar oder häufiger als rekursiv aufzählbar bezeichnet. Das Erkennen erkennbarer Sprachen entspricht den Sprachen, die durch uneingeschränkte Grammatiken erzeugt werden können.
Einige Sprachen sind nicht einmal rekursiv aufzählbar - zum Beispiel ist die Menge aller Turing-Maschinen, die nicht anhalten, völlig unkenntlich. Es gibt eine Sprache, die diesem Satz entspricht und von keiner Grammatik generiert werden kann, die aber dennoch als "formale Sprache" bezeichnet werden kann. Nach dieser Definition gibt es keine vollständige Zuordnung von Turing-Maschinen zu formalen Sprachen und definitiv keinen Isomorphismus zwischen den beiden.