Linguaggio infinito vs. linguaggio finito


16

Non sono chiaro sull'uso delle frasi linguaggio "infinito" o linguaggio "finito" nella teoria dei computer.

Penso che la radice del problema sia che un linguaggio come è infinito, nel senso che può generare un numero infinito (ma numerabile) di stringhe. Tuttavia, può ancora essere riconosciuto da un automa a stati finiti.L={ab}

Inoltre non aiuta il fatto che il libro Sipser non faccia questa distinzione (almeno per quanto ne so). In un esame di esempio è emersa una domanda sulle lingue infinite / finite e sulla loro relazione con le lingue normali.


1
È infinito perché ab*(stella di Kleene) significa che puoi avere zero o più combinazioni della stringa ab, questo include un potenziale numero infinito di stringhe: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. Puoi comunque creare un FSM che riconosca questo linguaggio perché in realtà non c'è modo di generare una stringa infinita, quando elaborate da una macchina tutte le stringhe devono essere finite, ma ciò non rende il linguaggio stesso finito. L'infinità delle lingue è teorica.
Hunter McMillen l'

1
"Finitamente descrivibile" e "finito" non sono gli stessi. Ad esempio, la tua espressione regolare è una descrizione finita di un linguaggio infinito; un automa finito è solo un altro (ma si chiama automa finito non perché è una descrizione finita, ma perché può memorizzare solo una quantità costante di bit). {a,b}
Raffaello

Perché il numero finito di stati dovrebbe essere più significativo della descrizione finita di qualsiasi altra macchina?
babou,

L'automa può avere dei loop e puoi usare alcuni stati infinite volte.
doganolo,

Risposte:


28

Oh mio. Sembra una confusione causata dalla terminologia (vecchia scuola) della "lingua a stati finiti" come sinonimo di quella che oggi è conosciuta come "lingua regolare".

Comunque, le definizioni standard per finito / infinito accettate in questi giorni riguardano solo la dimensione della lingua:

  1. un linguaggio finito è qualsiasi insieme di stringhe, di cardinalità finita, | L | < .L|L|<
  2. un linguaggio infinito è qualsiasi insieme di stringhe, di infinita ( 0 ) cardinalità | L | = .L0|L|=

Una finita è sempre regolare.L

Una infinita può essere regolare (a volte chiamato "stato finito"), decidibile (a volte chiamato "ricorsivo"), non regolare (stato non finito), non decidibile, ecc.,L


1
Grazie Ran! Quindi, per essere chiari, è un linguaggio infinito? Quindi immagino, dato un linguaggio infinito, non si può sapere su quale classe di linguaggio sia. L={ab}
Legnosa l'

1
è corretto. è un linguaggio infinito e regolare. L={a,b}
Ran G.,

1
@timberly Certo, possiamo sapere e dimostrare che tipo di linguaggio è.
phant0m

4

Una lingua è un insieme di stringhe. È finito se contiene un numero finito di stringhe.


4

Non sono chiaro sull'uso delle frasi linguaggio "infinito" o linguaggio "finito" nella teoria dei computer.

Penso che la radice del problema sia che un linguaggio come è infinito, nel senso che può generare un numero infinito (ma numerabile) di stringhe. Tuttavia, può ancora essere riconosciuto da un automa a stati finiti.L={ab}

Un altro problema è che la teoria del linguaggio formale è piuttosto peculiare nel modo in cui usa il termine "linguaggio".

Per tutti in questo mondo tranne le persone nella teoria formale del linguaggio, una lingua è un sistema di espressioni usato per comunicare, quindi ogni espressione ha una forma (la sua sintassi ) e una sorta di significato (la sua semantica ). La teoria del linguaggio formale, almeno la parte utilizzata nell'informatica, è dedicata al problema di come definire, formalmente, la sintassi dei linguaggi. Riguarda la relazione tra la sintassi delle lingue (come appaiono le espressioni) e i formalismi (le lingue!) Come le espressioni regolari utilizzate per definire la sintassi delle lingue.

Quindi, nella teoria formale del linguaggio, "un linguaggio" è definito semplicemente come "un insieme di stringhe". In genere non assegna significati alle stringhe nella lingua.

Allo stesso tempo, i formalismi usati per descrivere le lingue, come le espressioni regolari, formano anche le lingue in questo senso: ad esempio, ogni espressione regolare è una stringa e, quindi, l'insieme delle espressioni regolari è una lingua. Tuttavia, per questi formalismi, le stringhe nella lingua do hanno un significato: per esempio, il significato di ogni espressione regolare è il linguaggio che contraddistingue.

ab{ab}abab{ab}

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

(ab)

(ab)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.