Linguagem infinita vs. linguagem finita


15

Não estou claro sobre o uso das frases "infinito" ou "finito" na teoria dos computadores.

Penso que a raiz do problema é que uma linguagem como L={ab} é infinita no sentido de poder gerar um número infinito (mas contável) de seqüências de caracteres. No entanto, ainda pode ser reconhecido por um autômato de estado finito .

Também não ajuda que o livro Sipser não faça essa distinção (pelo menos até onde eu sei). Uma pergunta sobre idiomas infinitos / finitos e sua relação com idiomas regulares surgiu em um exame de amostra.


1
É infinito porque a ab*(estrela Kleene) significa que você pode ter zero ou mais combinações de cadeias ab, isso inclui um número infinito potencial de cadeias: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. No entanto, você ainda pode criar um FSM que reconheça esse idioma porque, na realidade, não há como gerar uma sequência infinita; quando processadas por uma máquina, todas as sequências precisam ser finitas, mas isso não torna a linguagem finita. O infinito das línguas é teórico.
Hunter McMillen

1
"Finitamente descritível" e "finito" não são os mesmos. Por exemplo, sua expressão regular é uma descrição finita de um idioma infinito; um autômato finito é apenas outro (mas é chamado de autômato finito não porque é uma descrição finita, mas porque pode armazenar apenas uma quantidade constante de bits). {a,b}
Raphael

Por que o número finito de estados deve ser mais significativo que a descrição finita de qualquer outra máquina?
babou 23/05

O autômato pode ter loops e você pode usar alguns estados infinitos.
Doganulus

Respostas:


27

Oh meu. Isso parece uma confusão causada pela terminologia (da velha escola) da "linguagem do estado finito" como sinônimo do que hoje é conhecido como "linguagem regular".

De qualquer forma, as definições padrão para finito / infinito aceitas atualmente consideram apenas o tamanho da linguagem:

  1. uma linguagem finita é qualquer conjunto de strings, de cardinalidade finita, | L | < .L|L|<
  2. uma linguagem infinita é qualquer conjunto de strings, de infinita ( 0 ) cardinalidade | L | = .L0|L|=

Um finito é sempre regular.L

Um infinito pode ser regular (às vezes chamado de "estado finito"), decidível (às vezes chamado de "recursivo"), não regular (estado de não finito), não decidível etc.,eu


1
Graças Ran! Então, só para esclarecer, é uma linguagem infinita? Então eu acho que, dada uma linguagem infinita, nada pode ser conhecido sobre que classe de linguagem ela é. L={ab}
Timberly

1
está correto. é uma linguagem infinita e regular. L={a,b}
Ran G.

1
@ timberly Claro, podemos saber e provar que tipo de linguagem é essa.
Phant0m

4

Um idioma é um conjunto de strings. É finito se tiver um número finito de strings nele.


4

Não estou claro sobre o uso das frases "infinito" ou "finito" na teoria dos computadores.

Penso que a raiz do problema é que uma linguagem como é infinita no sentido de poder gerar um número infinito (mas contável) de seqüências de caracteres. No entanto, ainda pode ser reconhecido por um autômato de estado finito.L={ab}

Outra questão é que a teoria formal da linguagem é bastante peculiar na forma como usa o termo "linguagem".

Para todos neste mundo, exceto as pessoas na teoria formal da linguagem, uma linguagem é um sistema de enunciados usado para se comunicar, de modo que cada enunciado tem uma forma (sua sintaxe ) e algum tipo de significado (sua semântica ). A teoria formal da linguagem, pelo menos a parte usada na ciência da computação, é dedicada ao problema de como definir melhor formalmente a sintaxe das linguagens. É tudo sobre o relacionamento entre a sintaxe das línguas (como são as expressões) e os formalismos (línguas!), Como expressões regulares usadas para definir a sintaxe das línguas.

Portanto, na teoria formal da linguagem, "uma linguagem" é definida simplesmente como "um conjunto de strings". Normalmente, não atribui significados às seqüências de caracteres no idioma.

Ao mesmo tempo, os formalismos usados ​​para descrever linguagens, como expressões regulares, também formam linguagens nesse sentido: por exemplo, toda expressão regular é uma string e, portanto, o conjunto de expressões regulares é uma linguagem. No entanto, para estes formalismos, as cordas na língua Do têm um significado: por exemplo, o significado de cada expressão regular é a linguagem que denota.

ab{ab}abab{ab}

{ab}LLLL{ab}{ϵ,ab,abab,ababab,abababab,}{ab}

(ab)

(umab)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.