Sto cercando teorie matematiche che descrivono i linguaggi formali (insieme di stringhe) in generale e non solo le gerarchie grammaticali.
Sto cercando teorie matematiche che descrivono i linguaggi formali (insieme di stringhe) in generale e non solo le gerarchie grammaticali.
Risposte:
Ci sono molte possibilità. Altri hanno già menzionato automi che offrono una ricca selezione. Considera anche i seguenti framework:
Alcune lingue possono essere definite direttamente da definizioni (co) induttive . Ad esempio, il punto di correzione più piccolo di
è la stessa lingua di quella descritta da(ba∣a)∗, il punto di fissaggio più grande è(ba∣a)ω. Si noti che tale definizione può anche essere scritta informa diregola dicalcolo oinferenza:
Le parole definiscono strutture di parole che possono essere utilizzate come modelli di formula logica . In sostanza, ogni parola definisce il dominio delle sue posizioni , predicati P a : D → { 0 , 1 } in modo che P a ( i ) ⟺ w i = a per tutti a ∈ Σ , un predicato < che è < da Nlimitato a e un success predicato : D w × D w → { 0 , 1 } che è vero se e solo se il secondo parametro è il successore diretto del pugno.
Quindi, per esempio, se w = a a b a b a a b allora
in effetti, questaformula del primo ordinedefinisce --- tramite l'insieme di tutte le strutture di parole che la soddisfano --- la stessa lingua di(ba∣a)∗. Il corrispondenteω-language(bun|a)ωè descritto dallaformula LTL
Sono note diverse equivalenze tra classi di lingue classiche e determinate logiche. Ad esempio,FOcorrisponde a lingue prive di stelle,MSOdebolea lingue normali eMSOalingue regionaliω. Vediquiper i riferimenti.
Qualcosa di ortogonale alle classi classiche sono i linguaggi di pattern . Supponi un alfabeto terminale e un alfabeto variabile X = { x 1 , x 2 , ... } . Una stringa p ∈ ( Σ ∪ X ) + è chiamata modello . Sia H = { σ ∣ σ : X → Σ ∗ } l'insieme delle sostituzioni. Definiamo la lingua di un modello p come
Notare cheσè esteso per lavorare sui pattern; i simboli dei terminali rimangono invariati.
Ad esempio, consideraL(x1abbax1)={wabbaw∣w∈{a,b}∗}.
Si noti che consentiamo alle sostituzioni di eliminare le variabili; alcune proprietà della classe dei linguaggi di pattern sono enormemente diverse per le sostituzioni con cancellazione o non cancellazione. Le lingue modello sono di particolare interesse per l' apprendimento in stile Gold .
Dovresti dare un'occhiata alla teoria degli automi . C'è molto materiale a riguardo.
Ad esempio, puoi definire un linguaggio regolare con un automa finito non deterministico con bordi etichettati: una stringa appartiene alla lingua se l'automa può seguire le transizioni etichettate dai suoi caratteri e si ferma in uno stato finale.
Inoltre, una grammatica senza contesto può essere riconosciuta da un automa pushdown .
Un altro modo per definire le lingue è tramite le macchine di Turing .
Dalla gerarchia di Chomsky ci sono quattro tipi di linguaggi formali (ognuno di essi è un sottoinsieme di quelli che seguono):
Un linguaggio formale regolare può essere descritto da:
1., 2. e 3. sono equivalenti e da uno di essi puoi costruire gli altri.
Un linguaggio formale senza contesto può essere descritto da:
Anche 1. e 2. sono equivalenti.
Un linguaggio formale sensibile al contesto può essere descritto da:
Un linguaggio formale enumerabile ricorsivamente può essere descritto da:
Oltre alle altre risposte, si possono descrivere e classificare le lingue in termini di "generatori" e proprietà di chiusura. Ad esempio, ha senso parlare del più piccolo AFL generato da un linguaggio. Un buon posto per iniziare a conoscere questo tipo di descrizione è questo libro, anche se può essere abbastanza difficile trovarne una copia cartacea.