Metody realizacji języków programowania/MRJP Ćwiczenia 11: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 18: | Linia 18: | ||
[[Grafika:w8bloki.jpg|300px|center]] | [[Grafika:w8bloki.jpg|300px|center]] | ||
Oblicz zbiory zmiennych żywych na początku i końcu każdego bloku bazowego | |||
* Oblicz zbiory zmiennych żywych na początku i końcu każdego bloku bazowego | |||
przy założeniu, że ''a,b,c'' to zmienne żywe po bloku E. | przy założeniu, że ''a,b,c'' to zmienne żywe po bloku E. | ||
* Wyjaśnij w jaki sposób można wykorzystać te zbiory przy generowaniu kodu wynikowego. |
Aktualna wersja na dzień 21:28, 1 paź 2006
Autor: Paweł Górecki (gorecki@mimuw.edu.pl)
Zadanie 1
Zaproponuj algorytm obliczania atrybutów in, out, kill, gen dla reguł z wykładu wyliczających definicje osiągalne dla programów strukturalnych.
Zadanie 2
Jaka jest pesymistyczna liczba obrotów pętli dla algorytmu iteracyjnego w zależności od rozmiaru grafu przepływu?
Zadanie 3
Czy algorytm iteracyjny posiada własność stopu? Odpowiedź uzasadnij.
Zadanie 4
Dla podanego poniżej grafu przepływu:

- Oblicz zbiory zmiennych żywych na początku i końcu każdego bloku bazowego
przy założeniu, że a,b,c to zmienne żywe po bloku E.
- Wyjaśnij w jaki sposób można wykorzystać te zbiory przy generowaniu kodu wynikowego.