Metody realizacji języków programowania/MRJP Wykład 8: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 24: | Linia 24: | ||
# I jeszcze raz | # 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 == | == ShowHide == |
Wersja z 15:43, 14 lip 2006
Wprowadzenie
Przekształcenia poprawiające kod
Eliminacja wspólnych podwyrażeń
Wyrażenie postaci jest nazywane wspólnym podwyrażeniem jeśli występuje ono w kilku miejscach oraz wartości zmiennych i użytych w kolejnych wystąpieniach nie zmieniły się po poprzednim obliczeniu . W takiej sytuacji można zastąpić kolejne wystąpienia przez wartość wyliczoną za pierwszym razem.
Przykład:
a=4*i b=4*i c=a+b
Drugie wyliczenie można zastąpić przez . 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).
- 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