Si consideri la seguente grammatica:

$$ S\rarr aSb\space |\space aAb\\ A\rarr cA\space |\space \epsilon $$

  1. Scrivere il linguaggio generato dalla grammatica tramite insiemi di stringhe
  2. La grammatica è SLR? Giustificare la risposta
  3. In caso di risposta affermativa alla domanda precedente, dare la tabella del parser bottom-up associato

Si consideri la seguente grammatica:

$$ L\rarr T;L\space |\space T\\ T\rarr \underline{int}\space \underline{id}\\ T\rarr \underline{float}\space \underline{id}\\ T\rarr \underline{type}\space \underline{id}\space \underline{\{}L\underline{\}} $$

  1. Scrivere un SDD basato sulla grammatica data che calcoli un attributo $n$ intero per il simbolo $L$. Il valore di tale attributo deve essere il numero di byte necessari per allocare un oggetto dichiarato con l’espressione di tipo derivata da $L$. Si consideri che una variabile di tipo intero occupa 4 byte e una variabile di tipo float occupa 8 byte.
  2. Disegnare l’albero di parsing annotato con gli attributi che si sono definiti per l’espressione $\underline{int}\space a;\underline{type}\space r\{\underline{float}\space b;\underline{float}\space c\}$

Si consideri la seguente grammatica

$$ S\rarr B(1)\space |\space Caa(2)\\ B\rarr bC(3)\\ C\rarr bbCa(4)\space |\space \epsilon(5) $$

in cui i numeri tra parentesi sono la numerazione delle produzioni. Per la grammatica è stata calcolata la seguente tabella di parsing bottm-up:

a b $ S B C
0 r5 s4 r5 1 2 3
1 Accept
2 r1
3 s5
4 r5 s7 r5 6
5 s8
6 r3
7 r5 s7 r5 9
8 r2
9 s10
10 r4 r4
  1. Eseguire il parsing della stringa “bbbbaaaa”