Metody realizacji języków programowania/MRJP Ćwiczenia 7: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
 
 
Linia 1: Linia 1:
#REDIRECT [[Metody realizacji języków programowania/MRJP Ćwiczenia 6]]
+
== 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".