Semplificazione grammatiche

Gestione del non determinismo Il modo più facile per gestire il non determinsmo è semplificare le grammatiche quindi andiamo a vedere metodi per fare ciò. Semplificazione grammatiche (5) Slide No produzioni del tipo $A \to \varepsilon$ per bottom up (altrimenti va all’infinito!) No produzioni unitarie, così evito cicli in cui da A derivo sé stesso. No simboli inutili No ricorsione sinistra (divergenza per top-down) Fattorizzazione della grammatica Eliminazione delel produzioni nulle Vogliamo creare un algoritmo utile ad eliminare le produzioni che non ci piacciono. ...

4 min · Xuanqiang 'Angelo' Huang

Top-down Parser

Top-down Algoritmo di parsing Slide Questo si potrebbe considerare come algoritmo classico di parsing con non determinismo. (vado avanti, ed esploro tutto, senza look ahead). Esempio di esecuzione Commenti efficienza di sopra È molto inefficiente, in particolare si potrebbe trovare una compessità esponenziale del tipo $O(b^{|w|})$, con b il massimo numero di produzioni. (la produzione maggiore la espando sempre!) Slide ...

5 min · Xuanqiang 'Angelo' Huang

Valutazione Espressioni

Espressioni, Comandi, Ricorsione Espressioni Con espressione intendiamo una entità sintattica, che una volta valutata ritornerà un valore, oppure non termina, in questo caso si dice che la espressione è INDEFINITA. Questa è una definizione è leggermente ambigua dato che non abbiamo una definizione precisa di valutazoine, che è fortemente dipendente dalla macchina astratta in cui viene eseguito. Notazioni (sintassi possibili) (3) Notazione infissa Questa è la notazione classica matematica, per cose tipo $a -b$, in cui l’operando sta nel mezzo degli operatori. ...

12 min · Xuanqiang 'Angelo' Huang