generovanie cieľového prgramu zo stromu

21
Generovanie cieľového prgramu zo stromu Cieľového kódu

Upload: azuka

Post on 26-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Generovanie cieľového prgramu zo stromu. Cieľového kódu. Základ pre algoritmus generovania inštrukcií. Vyu žíva sa rekurzívna štruktúra stromu – každý podstrom je strom Elementárny strom je koncový vrchol Ohodnotenie vrcholov Vnútorných operátormi Koncových operandami - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Generovanie cieľového prgramu  zo stromu

Generovanie cieľového prgramu zo stromu

Cieľového kódu

Page 2: Generovanie cieľového prgramu  zo stromu

Základ pre algoritmus generovania inštrukcií Využíva sa rekurzívna štruktúra stromu – každý

podstrom je strom Elementárny strom je koncový vrchol Ohodnotenie vrcholov

– Vnútorných operátormi– Koncových operandami

Dôsledok tohoto ohodnotenia– Ak má vrchol nasledovníkov, vyhodnocujú sa najprv

nasledovníci Vyhodnotenie stromu sa realizuje „prechádzaním

stromu

Page 3: Generovanie cieľového prgramu  zo stromu

Vzťah stromovej reprezentácie a triád Triada zodpovedá stromu s ohodnotením

– Vrchol operátor triady– Nasledovníci zodpovedajú operandom triády

Page 4: Generovanie cieľového prgramu  zo stromu

Príklad

Majme výraz

(a * b + c) * (d – e) / ( - f)

V triádach a v strome mu zodpovedá

Page 5: Generovanie cieľového prgramu  zo stromu

Triády a strom daného príkladu

1. *, a, b

2. +, (1), c

3. -, d, e

4. *, (2), (3)

5. NEG, , f

6. /, (4), (5)

/

* NEG

+ -

* c

a b

d e

f

Page 6: Generovanie cieľového prgramu  zo stromu

Algoritmus

Vstup: program (aritmetický výraz) v postfixe Výstup: postupnosť inštrukcií Algoritmus očísluje vrcholy stromu číslami určujúcimi

poradie vyhodnocovania – realizácie operácií Ďalej používa rekurzívnu procedúru KOMP, ktorú

aplikuje na koreň stromu Algoritmus je riadený tabuľkami Operandami teraz môžu byť: zhromažďovač, adresa,

vnútorný vrchol – budeme sa naň odvolávať cez jeho číslo.

Page 7: Generovanie cieľového prgramu  zo stromu

Tabuľky algoritmu

Page 8: Generovanie cieľového prgramu  zo stromu

Tabuľka pre +

P L

Z

A(P)

Číslo(P)

Z

-

ADD A(P)

STORE Ti KOMP(Číslo(P)) ADD Ti

A(L)

ADD A(L)

LOAD A(L) ADD A(P)

KOMP(Číslo(P)) ADD A(L)

Číslo (L)

-

KOMP(Číslo(L)) ADD A(P)

KOMP(Číslo(L)) Return

Page 9: Generovanie cieľového prgramu  zo stromu

Tabuľka pre -

P L

Z

A(P)

Číslo (P)

Z

-

SUB A(P)

-

A(L)

STORE Ti Return

LOAD A(L) SUB A(P)

Komp(Číslo(P)) STORE Ti Return

Číslo(L)

STORE Ti

Komp(Číslo(L)) SUB Ti

Komp(Číslo(L)) SUB A(P)

Komp(Číslo(P)) Return

Page 10: Generovanie cieľového prgramu  zo stromu

Tabuľka pre zmenu znamienka

NEG

Číslo

Z

A

Komp(Číslo) CHZ

CHZ

LOAD A CHZ

Page 11: Generovanie cieľového prgramu  zo stromu

Algoritmus – metóda

1. Očísluj vnútorné vrcholy stromu (zhora nadol, zľava doprava)

2. Použi procedúru Komp na koreň stromu

Page 12: Generovanie cieľového prgramu  zo stromu

Príklad

Majme aritmetický výraz zo slidu : 4 a 5

Page 13: Generovanie cieľového prgramu  zo stromu

Výsledok očíslovania vnútorných vrcholov 1. *, a, b

2. +, (1), c

3. -, d, e

4. *, (2), (3)

5. NEG, , f

6. /, (4), (5)

/

* NEG

+ -

* c

a b

d e

f

1

2 3

4 5

6

Page 14: Generovanie cieľového prgramu  zo stromu

Generovanie inštrukcií

Činnosť Operácia Vybratá položka

Generované inštrukcie

Komp(6) /, (4), (5)Komp(5)Return

Komp(5) NEG, , fLOAD a

CHZLOAD f

CHZ

Return (5)

Komp(6) /, (4), ZSTORE Ti Komp(4)DIV Ti

STORE T1

Page 15: Generovanie cieľového prgramu  zo stromu

Generovanie inštrukcií – Cont.

Komp(4) *, (2), (3)Komp(2)Return

Komp(2) +, (1), cKomp(1)

ADD A(P)

Komp(1) *, a, bLOAD A(L)MPY A(P)

LOAD aMPY b

Return (1) ADD c

Retutn (2)

Page 16: Generovanie cieľového prgramu  zo stromu

Generovanie inštrukcií – Cont

Komp(4) *, Z, (3)STORE Ti

KOMP(3)MPY Ti

STORE T2

Komp(3) -, d, eLOAD A(L)SUB A(P)

LOAD dSUB e

Retutn (3)

Retutn (4)

Retutn (6)

MPY T2

DIV T1

Page 17: Generovanie cieľového prgramu  zo stromu
Page 18: Generovanie cieľového prgramu  zo stromu
Page 19: Generovanie cieľového prgramu  zo stromu
Page 20: Generovanie cieľového prgramu  zo stromu
Page 21: Generovanie cieľového prgramu  zo stromu