11-
mavzu:
Algoritmlash va dasturlashning asosiy tushunchalari
Reja
Ma’lumki, dastur mashina kodlarining qandaydir ketmaketligi bo‘lib, aniq
bir xisoblash vositasini amal qilishini boshqaradi. Dastur ta’minotini yaratish
jarayonini osonlashtirish uchun yuzlab dasturlash tillari yaratilgan. Barcha
dasturlash tillarini ikki toifaga ajratish mumkin:
• quyi darajadagi dasturlash tillari;
• yuqori darajadagi dasturlash tillari.
Quyi darajadagi dasturlash tillariga Assembler turidagi tillar kiradi.
Bu tillar nisbatan qisqa va tezkor bajariluvchi kodlarni yaratish imkoniyatini
beradi. Lekin, Asssembler
tilida dastur tuzish zaxmatli, nisbatan uzok davom
etadigan jarayondir. Bunga qarama-qarshi ravishda yuqori bosqich tillari
yaratilganki, ularda tabiiy tilning cheklangan ko‘rinishidan foydalangan xolda
dastur tuziladi. Yuqori bosqich tillaridagi operatorlar, berilganlarning turlari,
o‘zgaruvchilar va dastur yozishning turli usullari tilning ifodalash imkoniyati
oshiradi va dasturni “O‘QIMIShLI” bo‘lishini ta’minlaydi. Yuqori bosqich tillariga
Fortran, PL/1, Prolog, Lisp, Basic, Pascal, S va boshqa tillarni misol keltirish
mumkin.
Kompyuter
arxitekturasini takomillashuvi, kompyuter tarmog‘ining
rivojlanishi mos ravishda yuqori bosqich tillarini yangi variantlarini yuzaga
kelishiga, yangi tillarni paydo bo‘lishiga, ayrim tillarni esa yo‘qolib ketishiga olib
keldi.
Hozirda keng tarlalgan tillar Object Pascal, C++, S#, Php, Java, Asp tillari
xisoblanadi. Xususan, C tilining takommillashgan varianti sifatida C++ tilini
olishimiz mumkin.
1972
yilda
Denis Ritch
va
Brayan Kernegi
tomonidan C tili
yaratildi.
1980
yilda
Byarn Straustrop
C tilining avlodi C++ tilini yaratdiki, unda
strukturali va ob’yektga yo‘naltirilgan dasturlash texnologiyasiga
tayangan xolda
dastur yaratish imkoniyati tug‘ildi.
C++ tilida dastur yaratish bir nechta bosqichlardan iborat bo‘ladi. Dastlab,
matn taxririda (odatda dasturlash muxitining taxririda) dastur matni teriladi, bu
faylning kengaytmasi <<
*.srr
>> bo‘ladi, Keyingi bosqichda dastur matn
yozilgan fayl kompilyatorga uzatiladi, agarda dasturda xatoliklar bo‘lmasa,
kompilyator <<
*.obj
>> kengaytmali ob’yekt modul faylini xosil qiladi. Oxirgi
qadamda komponovka (Yig‘uvchi)
yordamida <<
*.exe
>> kengaytmali
bajariluvchi fayl - dastur xosil 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 dastur tarkibiga kiritadi.
Shundan so‘ng kengaytirilgan dastur matni kompilyatorga uzatiladi.
Kompilyator o‘zi ham dastur bo‘lib, uning uchun kiruvchi ma’lumot bo‘lib, C++
tilida yozilgan dastur matni xisoblanadi. Kompilyator dastur matnini
leksema
(atomar)
elementlarga
ajratadi va uni
leksik
, keyinchalik
sintaksik
taxlil qiladi.
Leksik taxlil jarayonida u matnni leksemalarga ajratish uchun <<
probel
ajratuvchisini
>> ishlatadi. Probel ajratuvchisiga probel belgisi (
'tabulyatsiya
belgisi
, '\n'-
keyingi qatorga o‘tish belgisi
, boshqa
ajratuvchilar
va
izoxlar
xisoblanadi.
Dastur matni tushunarli bo‘lishi uchun izoxlar ishlatiladi. Izoxlar
kompilyator
tomonidan <<
O‘TKAZIB
>> yuboriladi va ular dastur amal qilishiga
hech qanday ta’sir qilmaydi.
C++
tilida
izoxlar ikki
ko‘rinishda yozilishi mumkin. Birinchisida
”/*” dan
boshlanib, ”*/”
belgilar oralig‘ida joylashgan barcha belgilar ketma-ketligi izox
xisoblanadi, ikkinchisi <<
SATRIY IZOH>
> deb nomlanadi va u
”//”
belgilardan
boshlangan va satr oxirigacha yozilgan belgilar ketma-ketligi bo‘ladi.
Izoxning birinchi ko‘rinishida yozilgan izoxlar bir necha satr bo‘lishi va
ulardan keyin C++ operatorlari davom etishi mumkin.