Looplar - Loop - bu oqim grafigidagi shunday tugunlar to'plami
- To'plamdagi barcha tugunlar mustahkam bog'langan, ya'ni halqaning istalgan tugunidan boshqasiga qadar bir yoki bir nechta uzunlikdagi yo'l bor, butunlay halqa ichida va
- Tugunlar to'plami o'ziga xos kirishga ega, ya'ni tsikldagi tugunga ega bo'lib, tsiklning tashqarisidagi tugunga kirishning yagona yo'li birinchi navbatda kirish orqali o'tishdir.
Asosiy blokning DAG ko'rinishi 1 A = 4*i 2 B = a[A] 3 C = 4*i 4 D = b[C] 5 E = B * D 6 F = mahsulot + E 7 Mahsulot = F 8 G = i + 1 9 i = G 10, agar men <= 20 bo'lsa (1)
4
men 0
*
a
[ ]
b
[ ]
*
ishlab chiqarish
+
1
+
20
<=
Mashq qilish - kod qismi berilgan
umumiy pastki ifodani bartaraf qilishdan oldin va keyin qaramlik grafigini chizish .
x := a*a + 2*a*b + b*b;
y := a*a – 2*a*b + b*b;
Javoblar CSE dan oldingi qaramlik grafigi
*
a
a
*
2
a
*
b
+
*
b
b
+
x
*
a
a
*
2
a
*
b
-
*
b
b
+
y
Javoblar
*
2
*
+
+
x
*
a
*
b
*
a
a
*
2
a
*
b
-
*
b
b
+
y
Javoblar CSE dan keyin qaramlik grafigi
*
2
*
+
+
x
-
+
y
*
a
*
b
Yaxshiroq kod ishlab chiqarish ko'proq kontekstni talab qiladi - Ortiqcha ifodalar :
- Asosiy bloklar ustida :
- Umumiy pastki ifodani yo'q qilish
- Oxirgi foydalanish ma'lumotlari bilan kuzatuvni ro'yxatdan o'tkazing
- Ortiqcha protseduralar :
- global registrni ajratish, registrni bo'yash
- Dastur bo'yicha :
- Jarayonlararo oqim tahlili
Asosiy bloklar - aniqlash nuqtalari va o'zgaruvchilardan foydalanish nuqtalari haqida ma'lumot kerak
- Boshqarish oqimi mavjud bo'lganda, o'zgaruvchining qiymati dasturning bir nechta nuqtalariga bog'liq bo'lishi mumkin
y := 12; x := y * 2; -- bu erda x = 24 label1: … x := y * 2; -- 24? Aytish mumkin emas, y boshqacha bo'lishi mumkin - Asosiy blok - bu bitta kirishli, bitta chiqishli kod bo'lagi: asosiy blokda hisoblangan qiymatlar bitta kelib chiqishiga ega: ko'proq doimiy katlama va pastki ifodani yo'q qilish, registrdan yaxshiroq foydalanish.
Asosiy bloklarni topish - Dasturni asosiy bloklarga bo'lish uchun:
- Asosiy blokdagi birinchi ko'rsatmani ( to'rtlik ) uning yetakchisini chaqiring
- Dasturdagi birinchi ko'rsatma liderdir
- Sakrashning maqsadi bo'lgan har qanday ko'rsatma etakchi hisoblanadi
- Sakrashdan keyin keladigan har qanday ko'rsatma etakchi hisoblanadi
- Nojo'ya ta'sirli protseduralar mavjud bo'lganda, har bir protsedura chaqiruvi asosiy blokni tugatadi
- Asosiy blok etakchini va keyingi rahbargacha bo'lgan barcha ko'rsatmalarni o'z ichiga oladi
- Umumiy pastki ifodani yo'q qilish: ortiqcha hisob-kitoblarni tanib oling, bitta vaqtinchalik bilan almashtiring
- O'lik kodni yo'q qilish: keyinchalik ishlatilmaydigan hisob-kitoblarni tan oling, to'rtliklarni olib tashlang
- Yaxshiroq rejalashtirish uchun bayonotlarni almashtiring
- Ro'yxatdan yaxshi foydalanish uchun vaqtinchalik nomlarni o'zgartirish
- Yuqoridagilarning barchasi ta'rif/foydalanish ma'lumotlarini olish uchun asosiy blokning ramziy bajarilishini talab qiladi
Do'stlaringiz bilan baham: |