Si risponda alle seguenti domandi:
- Si dia una grammatica per il linguaggio
- Si dia una grammatica ad attributi per un analisi ascendente che calcoli come attributo di ogni nodo non terminale il parse tree derivato da tale nodo. Allo scopo si utilizzino le seguenti operazioni per la costruzione di alberi:
- MkT:: Etichetta x ListaAlberi -> Albero /* MkT(a,f) crea albero con radice etichettata a e con figli gli alberi in f, nell'ordine in cui occorrono */
- MkE:: -> ListaAlberi /* crea una lista vuota */
- Add:: Albero x ListaAlberi -> ListaAlberi /* Add(t,f) aggiunge t come primo albero*/
- Si dia una grammatica ad attributi per un analisi ascendente che calcoli come attributo del simbolo distinto la foresta di alberi derivata. Allo scopo si utilizzino le operazioni sopra: in particolare si utilizzino liste di alberi per le foreste.
- Si dia una grammatica ad atributi per un analisi ascendente che calcoli come attributo del simbolo distinto la profondita' della foresta rappresentata dalla stringa derivata.