1 / 26

Vnútorné formy -vnútorné jazyky

Vnútorné formy -vnútorné jazyky. Motív. Zložitosť procesu prekladu Flexibilita Efektívnosť. Sémantická reprezentácia. Zápisu programu vo vnútornom jazyku hovoríme i sémantická reprezentácia Vyjadrujeme v ňom už „ČO“ a „AKO“ sa bude robiť Vyjadrujeme už následnosť vykonávania operácií.

harlan
Download Presentation

Vnútorné formy -vnútorné jazyky

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. Vnútorné formy-vnútorné jazyky

  2. Motív • Zložitosť procesu prekladu • Flexibilita • Efektívnosť

  3. Sémantická reprezentácia • Zápisu programu vo vnútornom jazyku hovoríme i sémantická reprezentácia • Vyjadrujeme v ňom už „ČO“ a „AKO“ sa bude robiť • Vyjadrujeme už následnosť vykonávania operácií

  4. Požiadavky na vnútorný jazyk • Jednoduchší preklad „DO“ • Jednoduchší preklad „Z“ • Jednoduchšie operovanie „NAD“ daným jazykom

  5. Flexibilita a efektívnosť • Vnútorné jazyky umžňujú flexibilnejšie a efektívnejšie využívať spoločné časti prostredia pre tvorbu prekladačov • Ak máme n zdrojových jazykov a m cieľových jazykov, využíva sa nasledujúca schéma

  6. Prostredie pre viac zdrojových a cieľových jazykov ZJ1 CJ1 ZJ2 CJ2 VJ Sémanitcká reprezentácia ZJn CJm

  7. Najčastejšie vnútorné jazyky • Prefix / postfix • Tetrády / triady • Strom

  8. Prefix / postfix • Operátory sú • Pred operandami – prefix • Za operandami – postfix

  9. Vo vzťahu ku klasickému infixu • Operandy sú v rovnakom poradí • Operátoty – v poradí, ako sa majú vykonávať

  10. Aritmetický výraz - Príklad Infixový zápis Postfixový zápis a + b a b + a b c * + a + b * c sin(a) a sin (a + b) * (c – d / f) a b + c d f / - * a := sin(a – b) + a * b / c a a b – sin a b * c /+ :=

  11. Deklarácia poľa, Indexovaná premenná Infixový zápis Postfixový zápis A[d1:h1, …, dn:hn] A, d1,h1, …, dn,hn, DCLA A[i1, i2, …, in] A, i1, i2, …, in, SUBS

  12. Riadiace konštrukcie

  13. Skok Infixový zápis Postfixový zápis Skok Nepodmienený GOTO L L JU Jump Unconditional Sko Podmienený Jump if True if b then GOTO L b L JIFT Jump if False b L JIFF

  14. Podmienený príkaz Infixový zápis Postfixový zápis b L2 JIFF P1 Lza JU P2 L2 – návestie príkazu P2 Lza – návestie príkazu bezprostredne za daným podmieneným príkazom If b then P1 else P2 Návestia L2 a Lza generuje prekladač

  15. Príkaz cyklu while (test „pred“) Infixový zápis Postfixový zápis B Lza JIFF P Lpc JU Lpc – návestie vlastného príkazu cyklu Lza – návestie príkazu bezprostredne za daným príkazom cyklu while B do P Návestia Lpc a Lza generuje prekladač

  16. Príkaz cyklu repeat (test „za“) Infixový zápis Postfixový zápis P B Lpc JIFF Lpc – návestie vlastného príkazu cyklu repeat P until B Návestie Lpc generuje prekladač

  17. Príkazy nad zásobníkom prekladača TA adr - uloží adresu adr na vrch zásobníka TC k - uloží konštantu k na vrch zásobníka TL L - uloží návestie L na vrch zásobníka ST - uloží hodnotu na vrchu zásobníka na adresu, ktorá je pod vrchom zásobníka DR - uloží hodnotu z adresy na vrchu zásobníka do zásobníka (na vrch)

  18. Ďalšie operátory BLOCKBEG – začiatok bloku BLOCKEND – koniec bloku Aritmetické, logické a relačné operátory budú jasné z kontextu

  19. Strom • Využívajú sa vlastnosti stromu ako dátovej štruktúry • Hovoríme o abstraktnom syntaktickom strome (AST) • Ide o vrcholovo ohodnotený strom • Vnútorné vrchly sú ohodnotené operátormi • Koncové operandami

  20. Aritmetický výraz a+b + a b := a := sin(a – b) + a * b / c + a a b – sin a b * c / +:= / sin - c * a b a b

  21. Podmienený príkaz Infixový zápis Postfixový zápis If b then P1 else P2 If_príkaz b P1 P2 Bloky b, P1 a P2 treba rovnakým spôsobom „rozviesť“

  22. OK

More Related