1 / 21

Generovanie cieľového prgramu zo stromu

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

emma
Download Presentation

Generovanie cieľového prgramu zo stromu

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. Vzťah stromovej reprezentácie a triád • Triada zodpovedá stromu s ohodnotením • Vrchol operátor triady • Nasledovníci zodpovedajú operandom triády

  4. Príklad Majme výraz (a * b + c) * (d – e) / ( - f) V triádach a v strome mu zodpovedá

  5. Triády a strom daného príkladu • *, a, b • +, (1), c • -, d, e • *, (2), (3) • NEG, , f • /, (4), (5) / * NEG + - f c d e * a b

  6. 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.

  7. Tabuľky algoritmu

  8. Tabuľka pre +

  9. Tabuľka pre -

  10. Tabuľka pre zmenu znamienka

  11. Algoritmus – metóda • Očísluj vnútorné vrcholy stromu (zhora nadol, zľava doprava) • Použi procedúru Komp na koreň stromu

  12. Príklad Majme aritmetický výraz zo slidu : 4 a 5

  13. Výsledok očíslovania vnútorných vrcholov • *, a, b • +, (1), c • -, d, e • *, (2), (3) • NEG, , f • /, (4), (5) / 6 4 * NEG 5 + - 2 3 f 1 c d e * a b

  14. Generovanie inštrukcií Činnosť Operácia Vybratá položka Generované inštrukcie Komp(6) /, (4), (5) Komp(5) Return Komp(5) NEG, , f LOAD a CHZ LOAD f CHZ Return (5) STORE Ti Komp(4) DIV Ti Komp(6) /, (4), Z STORE T1

  15. Generovanie inštrukcií – Cont. Komp(4) *, (2), (3) Komp(2) Return Komp(2) +, (1), c Komp(1) ADD A(P) Komp(1) *, a, b LOAD A(L) MPY A(P) LOAD a MPY b Return (1) ADD c Retutn (2)

  16. Generovanie inštrukcií – Cont Komp(4) *, Z, (3) STORE Ti KOMP(3) MPY Ti STORE T2 Komp(3) -, d, e LOAD A(L) SUB A(P) LOAD d SUB e Retutn (3) MPY T2 Retutn (4) DIV T1 Retutn (6)

More Related