2-Mavzu. Formal tillar gramatikasi. Kopiliyatorlar. Leksik va semantik tahlil


Belgilar zanjiri. Zanjirlar ustidagi amallar



Download 123,94 Kb.
bet2/4
Sana29.12.2021
Hajmi123,94 Kb.
#85004
1   2   3   4
Bog'liq
2-Mavzu. Formal tillar gramatikasi. Kopiliyatorlar. Leksik va semantik

Belgilar zanjiri. Zanjirlar ustidagi amallar

Ketma- ket yozilgan ihtiyoriy belgilar ketma-ketligi - belgilar zanjiri (satr) deb nomlanadi. Belgi tushinchasi tayanch bo‘lib ta’rifi berilmaydi.

Bunda biz berilgan zanjirlar belgisini grek hariflari bilan yozamiz –α, β, γ.

Misol: α=”a0103s” , β=”aaaa”, γ=”.”. α= β agarda mos zanjirlarda belgilar to‘plami va soni, teng bo‘lib ular bir xil ketma ketlikda tursa.

Zanjirdagi belgilar soni , zanjirning uzunligini bildiradi va quyidagicha yoziladi | α | misol: | α | =6; agar α= β unda | α | = | β | ;

Zanjirlar ustidagi asosiy amal konkatenatsiya ( birlashtirish, ulash, qo‘shish) amalidir. α va β zanjirlarni konkatenatsiyasi αβ ko‘rinishda yoziladi. Natijaviy zanjirda β zanjirning belgilari α ning belgilaridan keyin yoziladi masalan αβ= “a0103saaaa”.

Bu amal kommutativ emas, yani αβ≠βα , lekin assotsiativ α(βγ)=(αβ)γ.

Yana ikkita amalni aytib o‘tmoq kerak:

Zanjirni teskari qilish amali- zanjir belgilarini teskari tartibda yozishdir αR ko‘rinishda yoziladi:

α = “abv”; αR=“vba”; ∀α,β: (α,β)R= βRαR;

Iteratsiya amali:

Agar zanjir birorta belgidan iborat bo‘lmasa, bunday zanjir bo‘sh zanjir deb nomlanadi va u λ yoki ε xarflari bilan belgilanadi. Bo‘sh zanjir quyidagi qoidalarga rioya qiladi:

1. | ε | =0;

2.R=α;


3. ∀ε=ε;

4. ∀n≥0: εn=ε;

5. ∀α: α0= ε;

Tilni elementar belgilaridan tashkil qilingan bo‘linmas konstruksiya leksema deb nomlanadi. Leksema tilni birligi bo‘lib uning asosiy tushunchasi xisoblanadi. Agar leksema bo‘linsa uning til nuqtayi nazariyasidan ma’nosi yo‘qaladi. Tabiiy tillarda leksema bu so‘zni bildiradi. Programmalash tillarda leksema deb identifikator, konstanta, kalit so‘zi, amal belgilari , ajratuvchilar va nishonlar xisoblanadi. Leksik taxlilchi (skaner) kompilyator qismi bo‘lib , boshlang‘ich programm matn o‘qiydi va undagi leksemalarni ketma ket ajratib beradi. Leksik taxlilchi vazifasini sintaktik taxlilchi xam bajarishi mumkin, lekin leksik taxlilchi aloxida bo‘lishini sababi xam bor:

leksik taxlilchini ishlatish natijasida boshlang‘ich matndan leksemalar ajratib beriladi va ortiqcha narsalar olib tashlanadi (probellar, kommentariyalar va xokazo), natijada programma

qisqartiriladi;

leksik taxlil jarayonida sodda va effektiv algoritmlar qo‘llanadi, aksincha sintaktik taxlilchini algoritmlari murakkabdir;

leksik taxlilchi murakkab sintaktik taxlilchini boshlang‘ich matn ustida ishlashni ozod qiladi , va unga tayyor kerakli ko‘rinishda

leksemalarni uzatib beradi;

agar programm tilini kodirovkasi o‘zgarilsa u faqat leksik tahlilchiga ta’sir qiladi.

Leksik va sintaktik taxlil bir-biriga bog‘langan xolda, ikkita usul bilan o‘zaro ishlashi mumkin. Bu ketma ket usuli va parallel usuli.

Birinchi usulda leksik taxlilchi matinni to‘liq ko‘rib chiqib uni biror bir tuzim ko‘rinishda sintaktik taxlilchiga tayyorlab beradi. Bu tizim leksemalar jadvali deb nomlanadi. Jadvalda leksemani ko‘rinishdan tashqari uning turi va maxsus qo‘di saqlanishi mumkin. Bu jadvaldan tashqari yana boshqa jadvallar xosil bo‘lishi mumkin, masalan identifiqatorlar jadvali , konstantalar jadvali va hokazo.

Ikkinchi usulda ishni sintaktik taxlilchi boshlaydi va konstruksiyalarni tekshirish jarayonida leksik taxlilchini chaqirib joriy leksemani talab qiladi, va kutilgan leksema qoydalarga rioya qilsa uni jadvallarga yozadi va keyingi leksemaga o‘tadi.

Birinchi usul ikkinchiga qaraganda ma’quldir.

Leksemalar turlarga bo‘linadi, ko‘pincha kuyidagi turlar ishlatiladi:


  • Identifikatorlar

  • Kalit so‘zlar

  • Konstantalar

  • Ajratuvchilar(amallar)

Har bir leksema juftlik bilan berilishi mumkin:

( leksema turi, leksema manzili)

Yuqorida ko‘rsatilgan leksemalar regulyar grammatika bilan berilishi mumkin va uni chekli avtomat bilan amalga oshirish mumkin.

Leksik tahlilchi zanjirni tilga kirishini aniqlashdan tashqari yana bir nechta masalalarni yechish kerak:



  • U o‘zi manba programmadan leksemani ajratib olishi kerak va to‘g‘ri yozilganligini aniqlash kerak.

  • Leksemani kerakli jadvallarga joylashtirish kerak, yoki jadvalda borligini aniqlash kerak.

  • Belgilar zanjirni juftlikka qayta ishlash kerak.

  • Probel, kommentariy va boshqaruv belgilarni olib tashlashi kerak.

Leksik tahlilchi bu translyator, unda kiruvchi zanjir - programm matni, chiquvchi zanjir bu leksemalar ketma ketligi. Bu ketma ketlik leksemalar jadvali deb nomlanadi.

Leksik tahlilni to‘liq bajarish uchun holat diagrammalarga amallar qo‘shamiz.



Bunda ti terminal belgilar, Di bajarish kerak bo‘lgan amallar.

Misol: Bizga ishorasiz o‘nli butun son berilsin va uni qiymatini kvadrati chop etilsin. Uning grammatikasi kuyidagicha bo‘ladi:

S→N⊥


N→0|1|…|9|N0|N1|…|N9 Yechim:

Sonni har bir raqamini o‘qiganda Gorner sxemasi bo‘yicha uning qiymatini hisoblaymiz, ohirgi belgi o‘qilganda kvadratini chop etamiz:




Download 123,94 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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