19 czerwca 2002r.
GRUPA A
Zadanie 1. (lOp.)
Dana jest gramatyka:
I —► id = E E —y num | id | E 1 E B —y E = E J —y /; J
I —y repeat { J } teaper I —y breakon (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:
var a,b:integer; //zmienne globalne function p(c,t,x,y:integer) : integer;
var z : integer;
begin t y; y := a + c; b :» x;
z := t 1 y + b; x := a - b 1 (c + x); z :=» x 1 y; a := t + x 1 z; return z; end;
• Rozbij treść funkcji na cią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 Snkcji 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 postaci zoptymalizowanej.