Umumiy ma'lumot


Kirish ifodasini leksik tahlil qilish



Download 26,26 Kb.
bet3/11
Sana22.01.2022
Hajmi26,26 Kb.
#400936
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
tarjima leksika

Kirish ifodasini leksik tahlil qilish

To'g'ridan -to'g'ri kirish ifodasini tahlil qilishga o'tishdan oldin, ahamiyatsiz belgilarni (masalan, bo'sh joy va hokazo) olib tashlash va butun tokenlarni yaratish maqsadga muvofiqdir. Algoritm doirasida bu protsedura majburiy emas, lekin u algoritmning o'zi va uning dasturiy ta'minotini tushunishni sezilarli darajada soddalashtiradi.

Masalan, yuqoridagi arifmetik ifoda chizig'iga qaytaylik: (x + 10.2) ^ 2 + 5 * y-z. Leksik tahlil paytida, ko'rsatilgan satr quyidagi tuzilishga ega qatorlar qatoriga aylantiriladi: [0] => ”(”, [1] => ”x”, [2] => ”+”, [3] => ”10,2”, [4] => ”)”, [5] => ”^”, [6] => ”2”, [7] => ”+”, [8] => ”5” , [9] => ”*”, [10] => ”y”, [11] => ”-”, [12] => ”z”.

Shunday qilib, ajralmas belgi - bu operator (arifmetik operatsiya), yoki operand (bir yoki bir nechta raqamlardan iborat raqam), yoki parametr (x, y, z) yoki qavs (elementning ustuvorligini o'zgartiruvchi element sifatida). satrdagi arifmetik amallar).

Leksema ob'ekt sifatida

Daraxt tuzilishidagi har bir integral belgi ob'ekt bilan tavsiflanadi. "Daraxt" ning har qanday ob'ektida bir qator xususiyatlar (maydonlar) va ma'lum xatti -harakatlar mavjud. Keling, tokenni modellashtiradigan har bir ob'ekt uchun ma'lumotlar maydonlarining taklif qilingan ro'yxatini keltiraylik:

1. Ismlar maydoni - ob'ektning yagona nomini belgilaydi.

2. Lec maydoni - bu kirish iborasining shu qismi haqidagi ma'lumotlarni saqlash uchun tokenlar majmuasi, uning tepasida ob'ektlar "daraxtining" tuguni joylashgan.

3. Field const - agar bu ob'ekt parametr bo'lsa, o'zgaruvchi o'z nomini saqlaydi.

4. Field var - agar bu ob'ekt raqam yoki parametr bo'lsa, u holda o'zgaruvchi o'z qiymatini saqlaydi.

Har bir ob'ektning xulq -atvori metodlar majmui bilan tavsiflanadi. Bunday holda, bitta usul etarli, masalan: calc (). Agar ob'ekt operand (raqam) yoki parametrning xatti -harakatini tavsiflasa, u holda bu raqam yoki parametr qiymatini qaytarish kerak. Agar ob'ekt operatorlardan biri bo'lgan tokenni tavsiflasa (arifmetik amallar), unda usul bu operatorni qo'llash natijasini ikkita raqamga qaytarishi kerak.

Daraxt tuzilishining barcha ob'ektlari bitta sinfga tegishli bo'lishi mumkin, siz ob'ektni yaratishda bitta usulni bekor qilishingiz kerak. Yoki, siz bir mavhum calc () funktsiyasi bilan mavhum sinfni tasvirlashingiz mumkin. Keyinchalik, har bir token turi uchun biz mavhum sinfni meros qilib oladigan va calc () usulining o'ziga xos xatti -harakatlarini belgilaydigan o'z sinfimizni tasvirlaymiz. Dasturiy ta'minotni joriy qilish misolida, kodning ancha kichik miqdorini talab qiladigan oxirgi usul tanlandi.

Qaysi token modellashtirilganiga qarab, ba'zi maydonlar bo'sh qoldirilishi mumkin.

Leksema daraxt tuzilishidagi tugun sifatida

Tokenlarni modellashtiradigan ob'ektlarning konfiguratsiyasi umuman aniq. Ammo keyin bu narsalardan daraxt tuzilishini qanday shakllantirish kerak degan savol tug'iladi?

Bu muammo dasturiy ta'minot loyihalarida keng tarqalgan. Yechimning mohiyatini "Linker" nomli dizayn namunasidan olish mumkin. Ushbu dizayn naqshining (naqshining) barcha nozikliklarini ko'r -ko'rona nusxalash bizning rejalarimizga kiritilmagan, shuning uchun biz ma'lum bir ish uchun eng muhim va zarurini ajratib ko'rsatishga harakat qilamiz.

Daraxt tuzilishidagi ob'ektlarni tartibga solish uchun har bir ob'ektga yana uchta maydon qo'shing:

1. childrenLeft maydoni - bu ob'ektning chap "vorisi".

2. childrenRight maydoni - bu ob'ektning to'g'ri "vorisi".

3. Ota -ona maydoni - bu ob'ektning "ota -onasi".

Bundan keyin "ota -ona" va "merosxo'r" atamalari OOPning asosiy tamoyillaridan biriga ishora qilinmasdan, lekin boshqa ob'ektlarning hosil bo'lgan daraxt tuzilishiga nisbatan nisbiy joylashishini ko'rsatish kontekstida ishlatiladi.

Aytilganlarga aniqlik kiritish uchun biz "(x + 10.2) ^ 2 + 5 * y-z" ifodasi uchun daraxt tuzilishi tasvirini beramiz, bunda ob'ektlarning barcha maydonlarining qiymatlari ko'rsatilgan.

Yuqoridagi diagrammadan, nima uchun har bir tugun faqat ikkita "merosxo'r" ga ega bo'lishi yoki umuman bo'lmasligi juda aniq bo'ladi.

Olingan ob'ekt tuzilishi diagrammadagi eng yuqori ob'ektning calc () usulini chaqirish orqali arifmetik ifodalarning qiymatlarini hisoblash uchun juda maqbuldir.




Download 26,26 Kb.

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




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