Metody realizacji języków programowania/MRJP Ćwiczenia 7
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwaniaZadanie 1 - bloki bazowe
Wyznacz bloki bazowe dla kodu wygenerowanego w Zadaniu 2 z ćwiczeń do poprzedniego wykładu. Stwórz graf przepływu sterowania i wskaż w nim pętle.
Zadanie 2 - sprowadzanie do postaci SSA
Przetłumacz poniższy fragment programu na kod czwórkowy i sprowadź ten kod do postaci SSA. Wstaw funkcje
tylko tam, gdzie jest to konieczne. Pamiętaj o zmianie nazw (dodaniu indeksów) zmiennych.while (a != 0) { if (a < 0) { b = 1; } else { b = -1; } a = a + b; }
Zadanie 3 - trudniejsze sprowadzanie do postaci SSA
Teraz sprowadź do postaci SSA kod z zadania 1. Znajdź dominatory w grafie i wykaż, że miejsca wstawienia funkcji wyliczane za pomocą dominatorów są takie same, jak wyliczane za pomocą podanej na wykładzie definicji "ścieżkowej".