Tesi Robotica V+ Sim: Interprete Command Language e... | Page 54

I linguaggi non contestuali(context free) sono invece generabili con grammatiche di tipo 2, coincidono con i linguaggi riconoscibili con automi a pila non deterministici ed alcune loro sottoclassi sono sufficientemente ampie da consentire di descrivere linguaggi di programmazione e al tempo stesso sufficientemente ristrette da consentire la costruzione di analizzatori sintattici(parser) che operano in tempo lineare. Forma ridotta: grammatiche prive di ε-produzioni, prive di produzioni unitarie, prive di produzioni che contengono simboli inutili (cioè simboli non generabili partendo dall’assioma o simboli non fecondi, dai quali non si generano stringhe di soli terminali). I linguaggi non contestuali sono tutti e soli i linguaggi che vengono riconosciuti da un automa a pila non deterministico (o automa "pushdown",PDA) Def. Automa a pila non deterministico (PDA) M=<Σ,Γ,Z0,Q,q0,F,δ> Σ alfabeto di input Γ alfabeto dei simboli della pila Z0 ∈ Γ simbolo di pila iniziale Q insieme finito di stati q0 ∈ Q stato iniziale Q ⊇ F insieme di stati finali δ : Q ラ (Σ∪{ε}) ラ Γ → P(Q ラ Γ*) Def. Linguaggio accettato dall'automa a pila: due definizioni alternative 53