Si consideri la seguente grammatica:
$$
S\rarr aSb\space |\space aAb\\
A\rarr cA\space |\space \epsilon
$$
- Scrivere il linguaggio generato dalla grammatica tramite insiemi di stringhe
- La grammatica è SLR? Giustificare la risposta
- 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{\}}
$$
- 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.
- 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 |
|
|
|
|
- Eseguire il parsing della stringa “bbbbaaaa”