Metody realizacji języków programowania/MRJP Wykład 8: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
= | = Wprowadzenie = | ||
== | = Przekształcenia poprawiające kod = | ||
== Eliminacja wspólnych podwyrażeń == | |||
Wyrażenie <math>E</math> postaci <math>X\;op\;Y</math> jest nazywane '''wspólnym podwyrażeniem''' jeśli występuje ono w kilku miejscach oraz | |||
wartości zmiennych <math>X</math> i <math>Y</math> użytych w kolejnych wystąpieniach <math>E</math> nie zmieniły się po poprzednim obliczeniu <math>E</math>. W takiej sytuacji można zastąpić | |||
kolejne wystąpienia <math>E</math> przez wartość wyliczoną za pierwszym razem. | |||
Przykład: | |||
a=4*i | |||
b=4*i | |||
c=a+b | |||
Drugie wyliczenie <math>4*i</math> można zastąpić przez <math>b</math>. 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 | # I jeszcze raz | ||
Wersja z 15:32, 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
asdasd
- To jest tylko test
- I jeszcze raz
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