Esistono altri modi per descrivere linguaggi formali diversi dalle grammatiche?


22

Sto cercando teorie matematiche che descrivono i linguaggi formali (insieme di stringhe) in generale e non solo le gerarchie grammaticali.


Nota che ci sono molti, molti tipi di grammatica oltre a quelli classici di Chomsky, ad esempio grammatiche multiple , accoppiate e dipendenti dalla lunghezza , rispettivamente (facilmente googlabili).
Raffaello

Ho trovato una tabella Wikipedia
Anton,

Risposte:


14

Ci sono molte possibilità. Altri hanno già menzionato automi che offrono una ricca selezione. Considera anche i seguenti framework:

  1. 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(baa), il punto di fissaggio più grande è(baa)ω. Si noti che tale definizione può anche essere scritta informa diregola dicalcolo oinferenza:un' εLwLun'wLun'wLBun'wLun'
    (Bun'|un')*(Bun'|un')ω
    un'ε,wun'w,un'wBun'wun'

  2. 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 NDw={1,...,n}Pun':D{0,1}Pun'(io)wio=un'un'Σ<<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 alloraDwsuc:Dw×Dw{0,1}
    w=un'un'Bun'Bun'un'B
    in effetti, questaformula del primo ordinedefinisce --- tramite l'insieme di tutte le strutture di parole che la soddisfano --- la stessa lingua di(baa). Il corrispondenteω-language(bun|a)ωè descritto dallaformula LTLun'Swio.j. (PB(io)  suc(io,j))¬PB(j);un'
    (Bun'|un')*ω(Bun'|un')ω
    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.un'(PB(¬PB))un'
    ω

  3. 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ΣX={X1,X2,...}p(ΣX)+H={σ|σ:XΣ*}p
    Notare cheσè esteso per lavorare sui pattern; i simboli dei terminali rimangono invariati. Ad esempio, consideraL(x1abbax1)={wabbaww{a,b}}.un'L(p)={σ(p)|σH}.un'
    σ
    L(X1un'BBun'X1)={wun'BBun'w|w{un',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 .


5

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 .


5

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. Grammatica regolare
  2. Automa finito (deterministico / non deterministico)
  3. Espressione regolare

1., 2. e 3. sono equivalenti e da uno di essi puoi costruire gli altri.

Un linguaggio formale senza contesto può essere descritto da:

  1. Grammatica senza contesto
  2. Automa pushdown

Anche 1. e 2. sono equivalenti.

Un linguaggio formale sensibile al contesto può essere descritto da:

  1. Automa lineare limitato (macchina di Turing con nastro limitato)

Un linguaggio formale enumerabile ricorsivamente può essere descritto da:

  1. Macchina di Turing totale

E tutte le altre lezioni di lingua?
Raffaello

E le lingue senza classe?
Dave Clarke,

Chomsky non dice che questi sono gli unici tipi di lingue: sono solo quattro tipi che trova importanti e li troviamo ancora importanti, ma ce ne sono molti altri.
reinierpost,

5

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.

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.