ALG7

ALG7



6.1. Jak pracuje kompilator? 167

ASM(Instr2) koniec:

ASM(instr) znacza ciąg instrukcji asemblerowych odpowiadających instrukcji im Ir, a if, if_not i goto są elementarnymi instrukcjami procesora (słowami klu czowymi języka asemblera).

Każdą dowolną instrukcję strukturalną można przetłumaczyć na jej postać sekwencyjną (rzeczywiste kompilatory tym właśnie między innymi się zajmują) Także w przypadku wywołań proceduralnych czynność ta. wbrew pozorom, nie jest skomplikowana. Przyjmując pewne uproszczenia, ciąg instrukcji:

Insrrl;

P(x) ;

Instrż;

odpowiada, już po przetłumaczeniu przez kompilator, następującej sekwencji:

ASM(Instrl)

tmp=x

adr_powr-etl goto et2

etl:

ASM(Instr2); et2:

ASM(P(tmp>); goto adr_powr

Czy w podany wyżej sposób da się również potraktować wywołania rekurencyjne (w procedurze P wywołujemy jeszcze raz P)1 Oczywiście nie powielamy tyle razy fragmentu kodu odpowiadającego tekstowi P, aby obsłużyć wszystkie jej egzemplarze - byłoby to absurdalne i niewykonalne w praktyce. Jedyne, co nam pozostaje, to zasymulować wywołanie rekurencyjne poprzez zwykłe wielokrotne użycie tego bloku instrukcji, który odpowiada procedurze P - z jednym wszakże zastrzeżeniem: wywołanie rekurencyjne nie może zacierać informacji, które są niezbędne do prawidłowego kontynuowania wykonywania programu.

Niestety, sposób podany poprzednio nie spełnia tego warunku. Spójrzmy na przykład na następujący program rckurencyjny1:

Piint x)

(

Instrl;

P(F(x)];

Inscr2;

)

Funkcja F oznacza grupę przekształceń dokonywanych na parametrach funkcji.


Wyszukiwarka

Podobne podstrony:
ALG7 Rozdział 1Zanim wystartujemy Zanim na dobre rozpoczniemy operowanie takimi pojęciami jak wspom
ALG9 2.5. Pułapek ciąg dalszy 39 nie będzie mógł sprawdzić: jak rzeczywisty kompilator wykona tę fu
Jak pracując mniej, zarabiać więcej ZARABIAĆ WIKEI Inteligencja finansowa Twoim KLUCZEM DO SUKCESU
Jak pracujemy z Java?Ot ■I— gwfllffYgrgig.ru.hggżfllm.gl
op 01 0067 s£x: łubudu 167
CCF20111206010 (Kopiowanie) niczy niemalże całej ludności zdolnej do walki jak i pracującej na rzec
7 po wierszu i wykonywany krok po kroku, a nie jak w przypadku C/C++ kompilowany przed uruchomieniem
Program blok jpeg IIISchemat blokowy programu podwajania III Urok 10 Schemat blokowy powyżej uwidacz
litiONĄ 2 Jak pracują ralizując projekty graficzne? ilustracje, infografiki, notatki wizualne, wizyt
DZIEŃ OTWARTYw STX Next Wpadnij do naszego biura, poznaj i zobacz jak pracuje zespół tworzący
JAK PRACUJE W DOK/ ■ MICHAŁ SZAFRAŃSKI ■ / /
Jak pracujac mniej zarabiac wiecej ZARABIAĆ WIECE! INTELIGENCJA FINANSOWA TWOIM KLUCZEM DO SUKCESU
ALG9 1.1. Jak to wcześniej bywało, czyli... 19 • jest skończony (wynik algorytmu musi zostać „kiedy
ALG1 1.2. Jak to się niedawno odbyło, czyli. 211.2. Jak to się niedawno odbyło, czyli o tym kto „wy
ALG7 1.5. Poprawność algorytmów 27 {warunki wstępne 1} poszukiwany-program {warunki końcowe} Możliw
ALG3 2.3. Jak wykonują się programy rekurencyjne? 332.3. Jak wykonują się programy rekurencyjne? Do

więcej podobnych podstron