Tříadresní kód

Tříadresní kód (často označovaný jako tříadresný kód nebo tříadresový kód) označuje v informatice formu mezijazyka, používanou překladačem jako pomůcku pro optimalizaci kódu. Každý příkaz v tříadresním kódu je zapsán pomocí uspořádané čtveřice: operátor, operand1, operand2 a výsledek.

Zápis

Každý výrok pak má obecný zápis:

vysledek := operand 1 operator operand 2 {\displaystyle {\text{vysledek}}:={\text{operand}}_{1}\,\operatorname {operator} \,{\text{operand}}_{2}\,}

jako například:

x := y op z {\displaystyle x:=y\,\operatorname {op} \,z\,}

kde x, y a z jsou proměnné, konstanty nebo dočasné proměnné generované překladačem. Symbol op představuje libovolný operátor, například aritmetický součet.

Výrazy, které obsahují více než jednu klíčovou operaci, například:

p := x + y × z {\displaystyle p:=x+y\times z\,}

nejsou reprezentované v tříadresním kódu jako jeden příkaz. Místo toho se rozloží na ekvivalentní řadu příkazů jako například:

t 1 := y × z {\displaystyle t_{1}:=y\times z\,}

p := x + t 1 {\displaystyle p:=x+t_{1}\,}

Pojem tříadresní kód se používá i tehdy, kdy některé příkazy obsahují více (nebo naopak méně) než dva operandy. Klíčová vlastnost tříadresního kódu je, že každý příkaz obsahuje právě jednu operaci, a že zdroj i cíl se vztahují k jakémukoliv dostupnému registru.

Zdokonalením tříadresního kódu je tzv. SSA forma.

Příklad

 int main(void)
 {
     int i;
     int b[10];
     for (i = 0; i < 10; ++i) {
         b[i] = i*i; 
     }
 }

Výše uvedený program jazyka C, přeložený do tříadresního kódu, by mohl vypadat následovně:

      i := 0                  ; přiřazení
L1:   if i >= 10 goto L2      ; podmíněný skok
      t0 := i*i
      t1 := &b                ; adresa operace
      t2 := t1 + i            ; přiřazení hodnoty t2 k adrese b[i] 
      *t2 := t0               ; uložení operace prostřednictvím ukazatele
      i := i + 1
      goto L1
L2:

Související články

Reference

V tomto článku byl použit překlad textu z článku Three_address_code na anglické Wikipedii.

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Tříadresní_kód
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.