Não é bem assim. Uma máquina de Turing é descrita por este objeto matemático:
( Q , Σ , δ, H ,q0 0, B )
Onde
- Q é um conjunto finito de estados
- Σé um alfabeto , um conjunto finito de símbolos
- δ: Q × Σ → Q × Σ × { ⇐ , ⇒ } é uma função de transição
- H ⊆Qé o conjunto de estados de parada
- q0 0∈ Q é o estado inicial
- b ∈ Σ é o símbolo "em branco"
A máquina usa alguma sequência de entrada, x ∈ Σ ∗e usa a função de transição para atualizar iterativamente símbolos individuais nessa sequência até δ retorna um estado pertencente a H. Nesse ponto, dizemos que a máquina parou - o que pode ou não fazer.
Comparado a tudo isso, linguagens formais são objetos muito mais simples. Um idioma é apenas um subconjunto do conjunto de todas as strings sobre algum alfabeto. Em outras palavras,L⊆Σ∗, Onde ∗é o operador estrela Kleene .
A conexão é que as máquinas de Turing podem ser usadas para definir linguagens formais. Por exemplo:
L={x∈Σ∗|M halts when given ⟨x⟩ as input }
Define a linguagem formal L em termos da máquina de Turing M. Para um idioma,L, se existir uma máquina de Turing que interrompa se e somente se sua entrada pertencer a L, o idioma será chamado de reconhecível por Turing . Algumas linguagens não podem ser definidas por nenhuma máquina de Turing, o que significa que elas não são computáveis - nenhum processo finito pode decidir se uma sequência arbitrária pertence ou não à linguagem.
Linguagens formais não são iguais às máquinas de Turing, mas o reconhecimento de Turing tem um lugar interessante no estudo das linguagens formais. Na hierarquia de Chomsky, uma linguagem Tipo 0 é uma linguagem que pode ser enumerada por qualquer gramática formal, e isso equivale a ser reconhecível por uma máquina de Turing! Gramáticas formais e máquinas de Turing são apenas dois dos muitos modelos de computação que são igualmente poderosos!
Geralmente, acredita-se que todo modelo de computação faz a mesma distinção entre linguagens computáveis e não computáveis - essa noção é chamada de tese de Church-Turing .
Edição: Minha terminologia estava desligada quando eu escrevi isso inicialmente. Uma linguagem decidível de Turing pode ser decidida por uma máquina que sempre pára e fornece um sim ou não definitivo para determinar se sua entrada pertence à linguagem. Quando exigimos apenas que a máquina aceite membros, mas não pode necessariamente rejeitar não membros, o idioma associado é chamado de Turing reconhecível ou, mais comumente, recursivamente enumerável. Os idiomas reconhecíveis de Turing são equivalentes aos idiomas que podem ser gerados por gramáticas irrestritas.
Algumas linguagens nem são recursivamente enumeráveis - por exemplo, o conjunto de todas as máquinas de Turing que não param é totalmente irreconhecível. Há um idioma correspondente a esse conjunto que não pôde ser gerado por nenhuma gramática, mas que ainda pode ser chamado de "linguagem formal". Por essa definição, não há mapeamento completo das máquinas de Turing para linguagens formais e, definitivamente, não há isomorfismo entre as duas.