Pok-13-wyk-Slajd9

Z Studia Informatyczne
Wersja z dnia 19:16, 30 sie 2006 autorstwa Complak (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Generacja kodu – graf przepływu

Generacja kodu – graf przepływu


Blok podstawowy jest liniowym fragmentem kodu, do którego sterowanie wchodzi na początku i wychodzi na końcu. Na poziomie bloków podstawowych można stosować wiele przekształceń ulepszających nie zmieniających zbioru wyrażeń obliczanych przez blok.

Kod trójadresowy dzieli się na bloki podstawowe według następującego algorytmu:

  • rozpoczynamy od wyznaczenia zbioru liderów, czyli pierwszych instrukcji bloków podstawowych, zgodnie z następującymi regułami:
  • instrukcja, od której rozpoczyna się wykonywanie programu jest liderem
  • instrukcja, która jest celem skoku warunkowego lub bezwarunkowego jest liderem
  • instrukcja bezpośrednio po instrukcji skoku warunkowego lub bezwarunkowego jest liderem
  • blok podstawowy to sekwencja instrukcji rozpoczynająca się od lidera i rozciągająca do instrukcji poprzedzającej następnego lidera.

W przedstawionym przykładzie liderów bloków podstawowych wyróżniono czerwoną czcionką.

Z podzielonego na bloki podstawowe kodu trójadresowego łatwo już skonstruować graf przepływu.

Graf przepływu jest grafem dwudzielnym, w którym wierzchołkami są bloki bazowe a krawędziami przepływy sterowania między blokami. Jeden z bloków podstawowych jest wyróżniony jako blok początkowy – od niego rozpoczyna się wykonywanie programu.


<< Poprzedni slajd | Spis treści | Następny slajd >>