Metody realizacji języków programowania/MRJP Ćwiczenia 7: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Metody realizacji języków programowania/MRJP Ćwiczenia 7 moved to Metody realizacji języków programowania/MRJP Ćwiczenia 6: Pomyłka |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
# | == Zadanie 1 - bloki bazowe == | ||
{{kotwica|Zad1|}} | |||
Wyznacz bloki bazowe dla kodu wygenerowanego w [[Metody realizacji języków programowania/MRJP Ćwiczenia 6#Zad2|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 | |||
<math>\phi</math> 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 [[Metody realizacji języków programowania/MRJP Ćwiczenia 7#Zad1|zadania 1]]. | |||
Znajdź dominatory w grafie i wykaż, że miejsca wstawienia funkcji <math>\phi</math> wyliczane za pomocą dominatorów | |||
są takie same, jak wyliczane za pomocą podanej na wykładzie definicji "ścieżkowej". |
Aktualna wersja na dzień 16:07, 1 paź 2006
Zadanie 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".