7-mavzu. Sintaktik tahlil


CHap rekursiv grammatikalar



Download 104,74 Kb.
bet6/8
Sana13.04.2022
Hajmi104,74 Kb.
#548237
1   2   3   4   5   6   7   8
Bog'liq
7-mavzu. Sintaktik tahlil

CHap rekursiv grammatikalar. LL (k) – xususityalari grammatika uchun kuchli cheklovlar yuklaydi. Natijada grammatika LL(1) xususiyatiga ega bo‘lishi uchun ba’zan grammatikani o‘zgartirish mumkin. Buni amalga oshirish uchun har doim ham muvaffaqiyatli bo‘lmaydi, lekin bir LL(1) grammatika olish imkoniyatiga ega bo‘ldi, keyin rekursiv kamayish usuli asosida analizator qurishda foydalanishingiz mumkin. Faraz qilaylik, quyidagi grammatika asosida tahlillovchi qurish kerak bo‘lsin.
E → E + T|E-T|T
T → T * F|T/F|F
F → num|(E)
FIRST(T)to‘plamning terminallari FIRST(E+T) to‘plamga tegishli bo‘lsin. Bu holda protseduralarning ketma – ket chaqirish bir qiymatli aniqlab bilmaymiz, chunki kirish zanjiridagilarni tahlil qilishmiz kerak.
Muammo shundaki, terminal bo‘lmagan E ning o‘ng pozitsiyasida qoidaning o‘ng tomoni, chap qismi ham Eda bo‘ladi. Bunday holatlarda terminal bo‘lmagan E – chap rekursiv deb aytiladi.
Ta’rif. Agar grammatikada A =>* Aw chiqish mavjud bo‘lsa, A terminal bo‘lmagan KS grammatika G chap rekursiv deb aytiladi.
Bitta bo‘lsa ham chap rekursiv qoidaga ega bo‘lgan grammatika LL(1)- grammatika bo‘la olmaydi. Ikkinchi tomondan bilamizki, KS til bitta bo‘lsa ham chap rekursiv bo‘lmagan grammatika bilan aniqlanadi.
CHap rekursivlikni bartaraf etish algoritmi. To‘g‘ridan-to‘g‘ri chap rekursivlikni bartaraf etish algoritmini keltiramiz.
G = (N, T, P, S)- KS grammatika va A → Aω1|Aω2|…|Aωn12|…|νm qoidalar P dagi barcha qoidalarni ifodalasin, A ning chap qismini saqlamaydi, chunki biror bir zanjir νi - A terminal bo‘lmagan bilan boshlanmaydi. N to‘plamga yana bir taerminal bo‘lmagan A` qo‘shamiz va A da chap tomondagi bo‘lgan qoidalarni o‘zgartiramiz. Quyidagi qoidalarni olamiz.
A → ν12|…|νm | ν1A`|ν2 A`|…|νm A`|
A` → ω1| ω2|…| ωm | ω1A`| ω2 A`|…| ωm A`|
Olingan grammatika oldingisiga ekvivalet ekanligini ko‘rsatish mumkin. YUqorida keltirilgan grammatikaga bu akslantirishni qo‘yib, arifmetik amallarni yozish uchun quyidagicha grammatikani olamiz:
E → T|TE`
E` →+T|+TE`
T → F|FT`
T` → *F|*FT`
F → (E)|num
Tuzilgan grammatika LL(1) xususiyatlariga ega ekanligini ko‘rsatish mumkin.
Agar ikkita qoida ham terminal bo‘lmagan bir xil belgi bilan bo‘lsa, aniq muammoni vaziyatga keltiradi, masalan,
S → if E then S else S
S → if E then S
Bunday hollarda yana bir terminal bo‘lmagan qoida qo‘shamiz, qaysiki yuqoridagi vaziyatga oydinlik kiritib, farqli qoidalarni keltirib chiqaradi va quyidagi qoidani olishimiz mumkin:
S → if E then S S`
S` →
S` → else S
Olingan grammatika rekursiv kamayish usuli bilan amalga oshirilishi mumkin.

Download 104,74 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish