19 czerwca 2002r.
Zadanie 1. (lOp.)
Dama jest gramatyka:
I |
—► |
id := E |
E |
num | id | E + E | |
B |
—► |
E = E |
J |
—► |
/; J |
I |
—► |
[J ] |
I |
—> |
loopf J ]forever |
I |
—► |
escapewhen B |
Dla tej gramatyki napisz schemat translacji tłumaczący ją na kod maszyny stosowej lub na kod w postacji czwórek (do wyboru).
Zadanie 2. (lOp.)
Dany jest następujący kod:
int a,b; //zmienne globalne int p(int c, int t, int x, int y)
int z; t = y; y = a + c; z - t 1 y; b = x 1 y + a; x«a-(b1(c + x)-t); z = x 1 a - b; a = t + x - z; return t;
>
• Rozbij treść funkcji na dąg przypisań prostych (x := y op z lub x := op z).
• Oblicz, jaka jest minimalna ilość dodatkowych komórek pamięci potrzebnych do wykonania funkcji. (Uwaga: zmienne lokalne i parametry finkcji należy traktować jak zmienne tymczasowe z wyjątkiem tej zmiennej, która jest używana w konstrukcji return, o ile taka występuje).
Zapisz tą funkcję jako ciąg przypisań prostych już w postad zoptymalizowanej.