Metody realizacji języków programowania/MRJP Wykład 8: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Gorecki (dyskusja | edycje)
Nie podano opisu zmian
Gorecki (dyskusja | edycje)
Linia 24: Linia 24:
# I jeszcze raz
# I jeszcze raz


== asdasd ==
== Usuwanie martwego kodu ==
# To jest tylko test
Zmienną nazywamy '''żywą''' w danym miejscu programu, jeżeli jej wartość może zostać użyta.
# I jeszcze raz
W pozostałych przypadkach nazywamy zmienną '''martwą''' w tym miejscu.
Analogicznie definiujemy '''kod martwy''', tzn. taki który oblicza wartości bezużyteczne.
Na przykład wyliczenie wartości dla zmiennej martwej lub instrukcja postaci


'''if''' (false) ...
to kod martwy.
W oczywisty sposób kod martwy usuwamy.
Często kod martwy powstaje po propagacji kopii lub po zwijaniu stałych.


== ShowHide ==
== ShowHide ==

Wersja z 15:43, 14 lip 2006

Wprowadzenie

Przekształcenia poprawiające kod

Eliminacja wspólnych podwyrażeń

Wyrażenie E postaci XopY jest nazywane wspólnym podwyrażeniem jeśli występuje ono w kilku miejscach oraz wartości zmiennych X i Y użytych w kolejnych wystąpieniach E nie zmieniły się po poprzednim obliczeniu E. W takiej sytuacji można zastąpić kolejne wystąpienia E przez wartość wyliczoną za pierwszym razem.

Przykład:

a=4*i
b=4*i
c=a+b

Drugie wyliczenie 4*i można zastąpić przez b. Przekształcony blok:

a=4*i
b=a
c=a+b

Eliminację wspólnych podwyrażeń można stosować

  • lokalnie - gdy przeszukujemy jeden blok bazowy,
  • globalnie - dla całego grafu przepływu (trudniejsze z powodu pętli).
  1. I jeszcze raz

Usuwanie martwego kodu

Zmienną nazywamy żywą w danym miejscu programu, jeżeli jej wartość może zostać użyta. W pozostałych przypadkach nazywamy zmienną martwą w tym miejscu. Analogicznie definiujemy kod martwy, tzn. taki który oblicza wartości bezużyteczne. Na przykład wyliczenie wartości dla zmiennej martwej lub instrukcja postaci

if (false) ...

to kod martwy.

W oczywisty sposób kod martwy usuwamy.

Często kod martwy powstaje po propagacji kopii lub po zwijaniu stałych.

ShowHide

Jak ukryć kawałek tekstu

Uwaga: nie należy umieszczać ===nagłówków=== w tym środowisku, bo się to i owo rozjeżdża (spis treści, linki Edytuj itp).

  • adsdas
  • asda
asdasdasdad