26
Vnútorné formy -vnútorné jazyky

Vnútorné formy -vnútorné jazyky

  • Upload
    harlan

  • View
    72

  • Download
    4

Embed Size (px)

DESCRIPTION

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í. - PowerPoint PPT Presentation

Citation preview

Page 1: Vnútorné formy -vnútorné jazyky

Vnútorné formy-vnútorné jazyky

Page 2: Vnútorné formy -vnútorné jazyky

Motív

Zložitosť procesu prekladu Flexibilita Efektívnosť

Page 3: Vnútorné formy -vnútorné jazyky

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í

Page 4: Vnútorné formy -vnútorné jazyky

Požiadavky na vnútorný jazyk

Jednoduchší preklad „DO“ Jednoduchší preklad „Z“ Jednoduchšie operovanie „NAD“

daným jazykom

Page 5: Vnútorné formy -vnútorné jazyky

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

Page 6: Vnútorné formy -vnútorné jazyky

Prostredie pre viac zdrojových a cieľových jazykov

ZJ1

VJSémanitcká reprezentácia

CJ1

ZJ2

ZJn

CJ2

CJm

Page 7: Vnútorné formy -vnútorné jazyky

Najčastejšie vnútorné jazyky

Prefix / postfix Tetrády / triady Strom

Page 8: Vnútorné formy -vnútorné jazyky

Prefix / postfix

Operátory sú– Pred operandami – prefix– Za operandami – postfix

Page 9: Vnútorné formy -vnútorné jazyky

Vo vzťahu ku klasickému infixu

Operandy sú v rovnakom poradí Operátoty – v poradí, ako sa majú

vykonávať

Page 10: Vnútorné formy -vnútorné jazyky

Aritmetický výraz - Príklad

Infixový zápis Postfixový zápis

a + b a b +

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

a + b * c a b c * +

sin(a) a sin

a := sin(a – b) + a * b / c a a b – sin a b * c /+ :=

Page 11: Vnútorné formy -vnútorné jazyky

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

Page 12: Vnútorné formy -vnútorné jazyky

Riadiace konštrukcie

Page 13: Vnútorné formy -vnútorné jazyky

Skok

Infixový zápis Postfixový zápis

Skok Nepodmienený

GOTO L L JU

Jump Unconditional

Sko Podmienený

if b then GOTO L b L JIFT Jump if True

b L JIFF Jump if False

Page 14: Vnútorné formy -vnútorné jazyky

Podmienený príkaz

Infixový zápis Postfixový zápis

If b then P1 else P2 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

Návestia L2 a Lza generuje prekladač

Page 15: Vnútorné formy -vnútorné jazyky

Príkaz cyklu while (test „pred“)

Infixový zápis Postfixový zápis

while B do P 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

Návestia Lpc a Lza generuje prekladač

Page 16: Vnútorné formy -vnútorné jazyky

Príkaz cyklu repeat (test „za“)

Infixový zápis Postfixový zápis

repeat P until B P B Lpc JIFF

Lpc – návestie vlastného príkazu cyklu

Návestie Lpc generuje prekladač

Page 17: Vnútorné formy -vnútorné jazyky

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)

Page 18: Vnútorné formy -vnútorné jazyky

Ďalšie operátory

BLOCKBEG – začiatok bloku

BLOCKEND – koniec bloku

Aritmetické, logické a relačné operátory budú jasné z kontextu

Page 19: Vnútorné formy -vnútorné jazyky

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

Page 20: Vnútorné formy -vnútorné jazyky

Aritmetický výraz

+

a b

a+b

a := sin(a – b) + a * b / c

a a b – sin a b * c / +:=

:=

/

* c

a b

+

sin

-

a b

Page 21: Vnútorné formy -vnútorné jazyky

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ť“

Page 22: Vnútorné formy -vnútorné jazyky
Page 23: Vnútorné formy -vnútorné jazyky
Page 24: Vnútorné formy -vnútorné jazyky
Page 25: Vnútorné formy -vnútorné jazyky

OK

Page 26: Vnútorné formy -vnútorné jazyky