Üç adres kodu - Three-address code
Olarak bilgisayar biliminin , üç adres kodu (genellikle, TAC ya da 3AC kısaltılmış) bir ara kod tarafından kullanılan derleyici optimize uygulanmasında yardımcı olmak için kod iyileştirilmesi dönüşümler . Her TAC talimat en fazla üç işlenen alır ve tipik atama ve ikili operatörün bir kombinasyonudur. Örneğin, t1 := t2 + t3. Adı az işlenenler ile talimatlar oluşabilir rağmen bu tablolara üç işlenen kullanımından kaynaklanmaktadır.
Üç Adres kodu derleyici içinde bir ara dil olarak kullanıldığı için, işlenen büyük olasılıkla beton bellek adresleri ya da olmayacak işlemci kayıt sırasında gerçek adreslerine tercüme edilebilir, ancak daha ziyade sembolik adresleri yazmaç tahsisi . Üç adres kodu, tipik olarak derleyici tarafından üretilen çünkü işlenen adları sırayla numaralandırılır bu da nadir değildir.
Üç adres kodu bir arıtma olduğunu bir normal formu (ANF).
Örnekler
Üç adres kodunda, bu birkaç ayrı talimatlar bölünmüş olacaktı. Bu talimatlar daha kolay çevirmek birleştirici dili . Algılamak da kolay ortak alt ifadeleri kod kısaltılması için. Aşağıdaki örnekte, bir hesaplama birkaç küçük oluşmaktadır:
# Hesaplama [[kuadratik denklemi]] bir çözeltisi. X = (b + sqrt (b ^ 2-4 * A * C)) / (2 x a)
|
t1: b * b = T2: = 4 * T3: t2 * c = t4: t1 = - t3 t5: = sqrt (t4) t6: n = 0 - b t7: = t5 + t6 t8: = 2 * a T9: = t7 / t8 X: = t9
|
Üç adres kodu şartlı ve şartsız atlayışları ve hafızaya ulaşma yöntemlerini sahip olabilir. Ayrıca çağıran fonksiyonların yöntemlerine sahip olabilir veya atlar için bu azaltabilir. Bu şekilde, üç adres kodu yararlı olabilir kontrol akış analizi . Aşağıdaki C benzeri bir örnekte, bir döngü 0 ile 9 arasında sayılar kareler saklar:
...
for (i = 0; i < 10; ++i) {
b[i] = i*i;
}
...
|
t1: = 0; i başlatmak
L1: eğer t1> = 10 git L2; koşullu atlama
T2: = T1 * t1; i karesi
T3: = t1 * 4; Kelime-align adresi
t4: = b + t3; i i * saklamak için adres
* T4: = t2; işaretçi depolamak
t1: = T1 + 1; i artırmak
git L1; tekrar döngü
L2:
|
Ayrıca bakınız
Referanslar
- ^ V. Aho, Alfred (1986). Derleyiciler, ilkeleri, teknikleri ve araçları . Sethi, Ravi., Ullman, Jeffrey D., 1942-. Okuma, Mass .: Addison-Wesley. Polis. 466. ISBN 0201100886 . OCLC 12285707 .