Leksik va sintaksis tahlil


Kompilyatorlar va ularning turlari



Download 305 Kb.
bet2/8
Sana27.04.2022
Hajmi305 Kb.
#585390
1   2   3   4   5   6   7   8
Bog'liq
Leksik va sintaksis tahlil

Kompilyatorlar va ularning turlari:
Bir tilda yozilgan dasturni protsessorning boshqa tilda ifodalangan dasturiga aylantiruvchi dasturga kompilyator deyiladi.
Masalan, kompilyator C tilida yozilgan dasturni olib, uni Assembler tilida yozilgan dasturga aylantiradi.
Ko‘pincha kompilyator va translyator tushunchalari bir ma’noda ishlatiladi.
Shuning uchun ham C, C++, Paskal kompilyatorlari degan tushunchalari ishlatiladi.

Ixtiyoriy kompilyator tarkibi quyidagi 3ta qismdan iborat:
1. Leksik tahlil.
2. Sintaksis tahlil.
3. Mashina kodini generatsiya qilish.

Kompilyatorlarning o’zaro bog’lanish tartibi quyidagicha:

C++ tili va uning leksik asosi


1. C++ tilidagi programma tuzilishi va uning kompilyatsiyasi.

2. C++tili alfaviti va leksemalar.

3. Identifikatorlar va kalit so’zlar.

Tayanch iboralar: Kompilyatsiya, fayl kengaytmasi, direktevalar, leksemalar, izohlar, oqimli o’qish va yozish funksiyalari, til alfaviti, identifikatorlar, kalit so’zlar.
C++ tilidagi programma tuzilishi va uning kompilyatsiyasi:[2(11-13), 3(7-9)]C++ tilida programma yaratish bir nechta bosqichlardan iborat bo‘ladi. Dastlab, matn tahririda (odatda programmalash muhitining tahririda) programma matni teriladi, bu faylning kengaytmasi «.cpp» bo‘ladi. Keyingi bosqichda programma matni yozilgan fayl kompilyatorga uzatiladi, agarda programmada xatoliklar bo‘lmasa, kompilyator «.obj» kengaytmali obyekt modul faylini hosil qiladi. Oxirgi qadamda komponovka (yig‘uvchi) yordamida «.exe» kengaytmali bajariluvchi fayl programma hosil bo‘ladi. Bosqichlarda yuzaga keluvchi fayllarning nomlari boshlang‘ich matn faylining nomi bilan bir xil bo‘ladi.
Kompilyatsiya jarayonining o‘zi ham ikkita bosqichdan tashkil topadi. Boshida preprotsessor ishlaydi, u matndagi kompilyatsiya direktivalarini bajaradi, xususan #include direktivasi bo‘yicha ko‘rsatilgan kutubxonalardan C++ tilida yozilgan modullarni programma tarkibiga kiritadi. Shundan so‘ng kengaytirilgan programma matni kompilyatorga uzatiladi. Kompilyator o‘zi ham programma bo‘lib, uning uchun kiruvchi ma’lumot bo‘lib, C++ tilida yozilgan programma matni hisoblanadi. Kompilyator programma matnini leksema (atomar) elementlarga ajratadi va uni leksik, keyinchalik sintaktik tahlil qiladi. Leksik tahlil jarayonida u matnni leksemalarga ajratish uchun «probel ajratuvchisini» ishlatadi. Probel ajratuvchisiga - probel belgisi ('─'), '\t' - tabulyatsiya belgisi, '\n'- keyingi qatorga o‘tish belgisi, boshqa ajratuvchilar va izohlar (kommentariylar) kiradi.

Programma matni tushunarli bo‘lishi uchun izohlar ishlatiladi. Izohlar kompilyator tomonidan «o‘tkazib» yuboriladi va ular programma amal qilishiga hech qanday ta’sir qilmaydi.

C++ tilida izohlar ikki ko‘rinishda yozilishi mumkin.

Birinchisida "/*" dan boshlanib, "*/" belgalari bilan tugagan barcha belgilar ketma-ketligi izoh hisoblanadi, ikkinchisi «satriy izoh» deb nomlanadi va u "//" belgilardan boshlangan va satr oxirigacha yozilgan belgilar ketma-ketligi bo‘ladi. Izohning birinchi ko‘rinishida yozilgan izohlar bir necha satr bo‘lishi va ulardan keyin C++ operatorlari davom etishi mumkin.

Misol.

int main(){

// bu qator izoh hisoblanadi

int a=0; //int d;
int c;
/* int b=15 */
/*- izoh boshlanishi
a=c;
izoh tugashi */
return 0;
}

Programmada d, b o‘zgaruvchilar e’lonlari inobatga olinmaydi va a=c amali bajarilmaydi.

Quyida C++ tilidagi sodda programma matni keltirilgan.



# include // sarlavha faylni qo‘shish
int main () // bosh funksiya tavsifi
{ // blok boshlanishi
cout << “Salom Olam! “\n”; // satrni chop etish
return 0; // funksiya qaytaradigan qiymat
} // blok tugashi

Programma bajarilishi natijasida ekranga "Salom Olam!" satri chop etiladi.

Programmaning 1-satrida #inc1ude.. preprotsessor direktivasi bo‘lib, programma kodiga oqimli o‘qish/yozish funksiyalari va uning o‘zgaruvchilari e’loni joylashgan «iostream.h » sarlavha faylini qo‘shadi. Keyingi qatorlarda programmaning yagona, asosiy funksiyasi -main() funksiyasi tavsifi keltirilgan. Shuni qayd etish kerakki, C++ programmasida albatta main() funksiyasi bo‘lishi shart va programma shu funksiyani bajarish bilan o‘z ishini boshlaydi.

Programma tanasida konsol rejimida belgilar ketma-ketligini oqimga chiqarish amali qo‘llanilgan. Ma’lumotlarni standart oqimga (ekranga) chiqarish uchun quyidagi format ishlatilgan:


Download 305 Kb.

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




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.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