Lenguaje infinito vs. lenguaje finito

16

No tengo claro el uso de las frases lenguaje "infinito" o lenguaje "finito" en la teoría de computadoras.

Creo que la raíz del problema es que un lenguaje como es infinito en el sentido de que puede generar un número infinito (pero contable) de cadenas. Sin embargo, todavía puede ser reconocido por un autómata de estado finito .L={ab}

Tampoco ayuda que el libro Sipser realmente no haga esta distinción (al menos por lo que puedo decir). En un examen de muestra surgió una pregunta sobre los idiomas infinitos / finitos y su relación con los idiomas regulares.

timberly
fuente
1
Es infinito porque la ab*(estrella de Kleene) significa que puede tener cero o más combinaciones de la cadena ab, esto incluye un número infinito potencial de cadenas: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. Sin embargo, aún puede construir un FSM que reconozca este lenguaje porque en realidad no hay forma de generar una cadena infinita, cuando es procesada por una máquina, todas las cadenas tienen que ser finitas, pero eso no hace que el lenguaje en sí sea finito. El lenguaje infinito es teórico.
Hunter McMillen
1
"Finitamente describible" y "finito" no son lo mismo. Por ejemplo, su expresión regular es una descripción finita de un lenguaje infinito; un autómata finito es solo otro (pero se llama autómata finito no porque sea una descripción finita, sino porque solo puede almacenar una cantidad constante de bits). {a,b}
Rafael
¿Por qué el número finito de estados debería ser más significativo que la descripción finita de cualquier otra máquina?
babou
El autómata puede tener bucles y puede usar algunos estados infinitas veces.
doganulus

Respuestas:

28

Oh mi. Esto parece una confusión causada por la terminología (de la vieja escuela) del "lenguaje de estado finito" como sinónimo de lo que hoy se conoce como "lenguaje regular".

De todos modos, las definiciones estándar para finito / infinito aceptadas en estos días solo se refieren al tamaño del idioma:

  1. un lenguaje finito es cualquier conjunto de cadenas, de cardinalidad finita, | L | < .LEl |LEl |<
  2. un lenguaje infinito es cualquier conjunto de cadenas, de cardinalidad infinita ( 0 ) | L | = .L0 0El |LEl |=

Una finita siempre es regular.L

Un infinito puede ser regular (a veces llamado "estado finito"), decidible (a veces llamado "recursivo"), no regular (estado no finito), no decidible, etc.,L

Sonó.
fuente
1
Gracias Ran! Entonces, para ser claros, es un lenguaje infinito? Entonces, supongo que, dado un lenguaje infinito, no se puede saber nada sobre qué clase de lenguaje es. L={unsi}
timberly
1
eso es correcto. es un lenguaje infinito y regular. L={un,si}
Ran G.
1
@timberly Claro, podemos saber y probar qué tipo de lenguaje es.
phant0m
4

Un lenguaje es un conjunto de cadenas. Es finito si tiene un número finito de cadenas.

David Richerby
fuente
4

No tengo claro el uso de las frases lenguaje "infinito" o lenguaje "finito" en la teoría de computadoras.

Creo que la raíz del problema es que un lenguaje como L={unsi} es infinito en el sentido de que puede generar un número infinito (pero contable) de cadenas. Sin embargo, todavía puede ser reconocido por un autómata de estado finito.

Otro problema es que la teoría formal del lenguaje es bastante peculiar en la forma en que utiliza el término "lenguaje".

Para todos en este mundo, excepto las personas en la teoría del lenguaje formal, un lenguaje es un sistema de enunciados utilizados para comunicarse, por lo que cada enunciado tiene una forma (su sintaxis ) y algún tipo de significado (su semántica ). La teoría formal del lenguaje, al menos la parte que se usa en informática, está dedicada al problema de cómo definir mejor, formalmente, la sintaxis de los lenguajes. Se trata de la relación entre la sintaxis de los idiomas (cómo se ven las expresiones) y los formalismos (idiomas), como las expresiones regulares que se utilizan para definir la sintaxis de los idiomas.

Por lo tanto, en la teoría del lenguaje formal, "un lenguaje" se define simplemente como "un conjunto de cadenas". Por lo general, no asigna significados a las cadenas en el idioma.

Al mismo tiempo, los formalismos utilizados para describir idiomas, como las expresiones regulares, también forman idiomas en este sentido: por ejemplo, cada expresión regular es una cadena y, por lo tanto, el conjunto de expresiones regulares es un lenguaje. Sin embargo, para estos formalismos, las cadenas en el lenguaje tienen un significado: por ejemplo, el significado de cada expresión regular es el lenguaje que denota.

unsi{unsi}unsiunsi{unsi}

{unsi}LLLL{unsi}{ϵ,unsi,unsiunsi,unsiunsiunsi,unsiunsiunsiunsi,...}{unsi}

(unsi)

(unsi)

reinierpost
fuente