Három címkód

A számítástechnika , három cím kód ( TAC vagy 3AC ) egy olyan típusú köztes nyelv által használt fordítóprogramok , mint csenget - LLVM . Minden TAC utasításnak legfeljebb három operandusza van, és általában a hozzárendelés és egy bináris operátor kombinációja. Például t1: = t2 + t3. A név három operandus használatából származik ezekben az utasításokban, bár előfordulhatnak kevesebb operandusú utasítások is.

Mivel a háromcímes kódot közbenső nyelvként használják a fordítókban, az operandusok valószínűleg nem konkrét memóriacímek vagy processzorregiszterek , hanem inkább szimbolikus címek, amelyeket lefordítanak valódi címekre, amikor azokat lefoglalják . Az sem ritka, hogy az operandus neveket sorszámozzuk, mivel a háromcímes kódot általában a fordító generálja.

Példák

Három címkódban ezt különálló utasításokra bontanák. Ezeket az utasításokat könnyebben lefordíthatják az összeállítás nyelvére. A kód rövidítése érdekében könnyebb észlelni a gyakori alkifejezéseket is. A következő példában a számítás több kisebbből áll:

# [[Másodfokú egyenlet]] megoldásának kiszámítása. x = (-b + sqrt (b ^ 2 - 4 * a * c)) / (2 * a) t1: = b * b t2: = 4 * a t3: = t2 * c t4: = t1 - t3 t5: = sqrt (t4) t6: = 0 - b t7: = t5 + t6 t8: = 2 * a t9: = t7 / t8 x: = t9

A három címkód feltételes és feltétel nélküli ugrásokkal és memóriaelérési módszerekkel rendelkezik. A funkciók hívásának módszerei is lehetnek. Ily módon a három címkód hasznos lehet a vezérlési folyamat elemzésében. A következő C típusú példában egy hurok tárolja a 0 és 9 közötti számok négyzetét:

... for (i = 0; i < 10; ++i) { b[i] = i*i; } ... t1: = 0; Az i. Inicializálása L1: ha t1> = 10 goto L2; Feltételes ugrás t2: = t1 * t1; Az i négyzetének kiszámítása t3: = t1 * 4; Cím meghatározása t4: = b + t3; Tárolási cím négyzetben * t4: = t2; Információ tárolása a mutatón keresztül t1: = t1 + 1; Növekedés i goto L1; Hurok ismétlés L2:

Lásd is

Megjegyzések és hivatkozások

  1. Aho, Alfred V. (Sethi, Ravi., Ullman, Jeffrey D., 1942-), Összeállítók, alapelvek, technikák és eszközök , Reading, Mass., Addison-Wesley Pub. Co,1986, 466  p. ( ISBN  0201100886 , OCLC  12285707 , online olvasás )