Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
`x =y OP Z`
Kde:
* `x`,` y` a `z` sú operandy (premenné alebo konštanty).
* `Op` je binárny operátor (napr. +, -, *, /, =).
Kľúčové charakteristiky:
* Explicitné operandy: Operands sú výslovne pomenované; Neexistuje žiadne implicitné používanie registrov alebo umiestnení zásobníka, ako by ste mohli nájsť v jazyku montáže. To uľahčuje optimalizáciu kompilátora analýzu a manipulovanie s kódom.
* Jeden operátor na pokyny: Každá inštrukcia vykonáva iba jednu operáciu. To je v rozpore s jazykmi montáže, v ktorých môže jedna inštrukcia vykonávať viac operácií.
* dočasné premenné: Dočasné premenné sa často používajú na udržanie stredných výsledkov. To pomáha objasniť kód a ľahšie optimalizovať.
* jednoduchá štruktúra: Jednoduchá, pravidelná štruktúra zjednodušuje návrh a optimalizáciu kompilátora.
Príklad:
Zoberme si aritmetický výraz:`a =b + c * d`.
V reprezentácii kódu s tromi prísadami by sa mohla preložiť do nasledujúcej sekvencie pokynov:
1. `T1 =C * d` (vynásobte C a D, výsledok uložte do dočasnej premennej T1)
2. `T2 =B + T1` (Pridať B a T1, výsledok uložte do dočasnej premennej T2)
3. `A =T2` (priraďte hodnotu v T2 a)
Výhody:
* Optimalizácia: Explicitné znázornenie operandov a dizajn jednej operácie na inštrukciu uľahčujú kompilátorovi vykonávanie rôznych optimalizácií, ako je spoločná eliminácia podbytku, konštantné skladanie a pohyb kódu.
* Čítateľnosť a ladenie: Vďaka jasnej štruktúre je stredný kód čitateľnejším a ľahšie ladiacim v porovnaní s kompaktnejšími, menej štruktúrovanými reprezentáciami.
Nevýhody:
* dlhší kód: V porovnaní s inými stredne pokročilými reprezentáciami môže tromi poradenský kód viesť k dlhším sekvenciám kódu v dôsledku použitia dočasných premenných. Táto dĺžka je však často kompenzovaná zvýšenými príležitosťami na optimalizáciu.
Stručne povedané, kód troch addressov poskytuje výkonné a flexibilné medziprodukty, ktoré uľahčuje účinnú optimalizáciu kompilátorov a generovanie kódu. Je to rozhodujúca súčasť kompilačného procesu pre mnoho programovacích jazykov.