logo

Dasturlash tillari tuzilish, sinflanishi va sintaksisni tasvirlash metodlari

Загружено в:

11.11.2024

Скачано:

0

Размер:

118.2802734375 KB
Mavzu:  Dasturlash tillari tuzilish, sinflanishi va sintaksisni tasvirlash
metodlari .
Reja:  
1.Kirish 
1.Dasturlash tillarining umumiy tavsifi va ahamiyati  
        1.1 Dasturlash tillarining kelib chiqishi va rivojlanishi 
        1.2 Zamonaviy dasturlash tillarining asosiy ahamiyati va ularning vazifalari 
2.Dasturlash tillarining sinflanishi
2.1 Pastki darajadagi va yuqori darajadagi dasturlash tillari
2.2  Tillarni sinflanishiga oid misollar (C, Java, Python, Haskell, va h.k.)
3.Dasturlash tillarining tuzilishi
3.1  Sintaksis, semantika va pragmatikaning dasturlash tilidagi roli
3.2 Kompilyatsiya va interpretatsiya jarayonlari tushunchasi
4.Sintaksisni tasvirlash usullari
    4.1 Sintaksis daraxtlari va grammatik qoidalar
6. Xulosa
7.Foydalangan adabyotlar 
1 Kirish
Dasturlash tillari insonlar va kompyuterlar o‘rtasida o‘zaro muloqotni 
osonlashtiradigan vositalar bo‘lib, ular dasturchilarga o‘z loyihalarini yaratishda 
yordam beradi. Bu tillar kompyuterga aniq vazifalarni bajarishni buyurish uchun 
dasturchilarga ko‘rsatmalar yozish imkonini beradi. Dasturlash tillarining 
rivojlanishi bilan ularning turlari va uslublari ko‘payib bormoqda, bu esa 
dasturlashni kengroq maqsadlarda qo‘llashga yordam bermoqda.Dasturlash tillari 
kompyuterlar bilan aloqa qilishda muhim rol o‘ynaydi, chunki ular kompyuterlarga
aniq ko‘rsatmalar berish uchun zarur bo‘lgan mantiqiy va matematik qoidalarni 
belgilaydi. Birinchi dasturlash tillari 1950-yillarda yaratilgan bo‘lsa, bugungi 
kunda zamonaviy dasturlash tillari murakkab va ko‘p funksiyali dasturlar yaratish 
imkonini beradi.Dasturlash tillari uzoq tarixga ega bo‘lib, dastlab ular matematik 
muammolarni hal qilish va bilimlar almashish uchun ishlatilgan. Misol uchun, 
1957 yilda Fortran (Formula Translation) birinchi yuqori darajali dasturlash tili 
sifatida paydo bo‘ldi va u asosan ilmiy va injenerlik hisob-kitoblarida foydalanildi.
O‘tgan yillarda turli xil paradigmalarga ega bo‘lgan dasturlash tillari yaratilib, ular 
bugungi kunda keng qo‘llanilmoqda.Zamonaviy dasturlash tillari yordamida 
dasturchilar keng ko‘lamli vazifalarni bajarishlari mumkin. Bu tillar murakkab 
hisob-kitoblar, katta hajmdagi ma’lumotlar bilan ishlash, o‘yinlar va boshqa grafik 
ilovalarni ishlab chiqish imkonini beradi. Hozirgi kunda mashinasozlik, moliya, 
sog‘liqni saqlash, axborot xavfsizligi va boshqa ko‘plab sohalarda dasturlash tillari 
muhim rol o‘ynaydi. C++, Java, Python, va JavaScript kabi tillar keng qo‘llanilib, 
dasturchilarga o‘z loyihalarini tezkor va samarali bajarishda yordam 
2 beradi.Axborot texnologiyalari sohasida dasturlash tillarining ahamiyati ortib 
bormoqda, chunki har bir texnologiya o‘ziga xos muammolarni hal qilish uchun 
mo‘ljallangan. Zamonaviy dasturlash tillari orqali kompyuter texnologiyalaridan 
yanada kengroq foydalangan holda yangi dasturiy mahsulotlar va xizmatlar ishlab 
chiqilmoqda. Internet ilovalarining ko‘payishi bilan veb-dasturlash tillari, xususan, 
HTML, CSS, JavaScript kabi tillar keng ommalashgan.
1. Dasturlash tillarining umumiy tavsifi va ahamiyati
1.1 Dasturlash tillarining kelib chiqishi va rivojlanishi
Kompyuterda   dasturlash   bu   –   kompyuter   mikroprotsessori   uchun   turli
buyruqlar   berish,   qachon,   qayerda   nimani   o'zgartirish   va   nimalarni   kiritish   yoki
chiqarish   haqida   buyruqlar   berishdir.   Ushbu   maqolada,   qanday   dasturlash   tillari
borligi, eng keng tarqalgan dasturlash tillari va ularning farqi. Hamda, Dasturlashni
o'rganish   yo'llari   haqida   suhbatlashamiz   Kompyuter   dunyosida   ko'plab   dasturlash
tillari mavjud bo'lib, dasturlash va unga qiziquvchilar soni ortib bormoqda. Bir xil
turdagi   ishni   bajaradigan   dasturlarni   Basic,   Pascal,   Ci   va   boshqa   tillarda   yozish
mumkin.   Pascal,   Fortran   va   Kobol   tillari   universal   tillar   hisoblanadi,   Ci   va
Assembler   tillari   mashi   tiliga   ancha   yaqin   tillar   bo'lib,   quyi   yoki   o'rta   darajali
tillardir. Algoritmik til inson tillariga qanchalik yaqin bo'lsa, u tilga yuqori darajali
til   deyiladi.   Mashina   tili   esa   eng   pastki   darajali   tildir.   Mashina   tili   bu   sonlardan
iboratdir,   Masalan:   010110100010101   Dasturlash   tillari   2   ta   katta   guruhlarga
bo'linadi, Quyi va Yuqori darajali dasturlash tili. Quyi darajali dasturlash tili ancha
murakkab bo'lib ular  juda maxsus sohalarda ishlatiladi  va ularning mutaxassislari
ham   juda   kam.   Chunki   quyi   dasturlash   tillari   (masalan:   assembler)   ko'pincha
miktoprotsessorlar   bilan   ishlashda   kerak   bo'lishi   mumkin.   Odatda   turli   dasturlash
3 ishlari uchun yuqori darajali dasturlash tilidan keng foydalaniladi. EHM (Elektron
Hisoblash   Mashinasi)   endi   yuzaga   kelgan   paytda   programma   tuzishda,   faqat
mashina tillarida, ya'ni sonlar yordamida EHM bajarishi kerak bo'lgan amallarning
kodlarida kiritilgan. Bu holda mashina uchun tushinarli sanoq, sistemasi sifatida 2
lik, 6 lik, 8 lik sanoq sistemalari bo'lgan. Programma mazkur sanoq sistemasidagi
sonlar   vositasida   kiritilgan.   Yuqori   darajali   dasturlashda,   mashina   tillariga
qaraganda   mashinaga   moslashgan   (yo'naltirilgan)   belgili   kodlardagi   tillar
hisoblanadi.   Belgilar   kodlashtirilgan   tillarning   asosiy   tamoyillari   shundaki,   unda
mashina   kodlari   ularga   mos   belgilar   bilan   belgilanadi,   hamda   xotirani   avtomatik
taqsimlash va xatolarni tashhis qilish kiritilgan. Bunday mashina moslashgan til -
ASSEMBLER tili nomini oldi. 
1.2  Zamonaviy dasturlash tillarining asosiy ahamiyati va ularning vazifalari
Universallik va moslashuvchanlik
Zamonaviy   dasturlash   tillari   (masalan,   Python,   JavaScript,   Java,   C++,   va
boshqalar)  ko‘plab platformalarda  va  operatsion  tizimlarda  ishlaydi. Bu  tillarning
moslashuvchanligi   ularning   keng   tarqalishiga   va   ko‘p   sohalarda   qo‘llanishiga
sabab   bo‘lgan.   Masalan,   Python   tilida   veb-sayt   yaratish,   sun’iy   intellekt
algoritmlarini   tuzish,   dasturlarni   avtomatlashtirish   kabi   vazifalarni   bajarish
mumkin.
Yuqori darajada samarali kod yozish
Zamonaviy dasturlash tillari kod yozish samaradorligini oshiruvchi funksiyalar va
kutubxonalarni   taqdim   etadi.   Misol   uchun,   Python’ning   NumPy   kutubxonasi
matematik   hisob-kitoblarni   tez   va   oson   bajarishga   imkon   beradi,   HTML  va   CSS
yordamida esa veb sahifalarni tez va oson ishlab chiqish mumkin.
4 Kodning o‘qilishi va tushunilishi
Dasturlash   tillarining   ahamiyatli   jihati   ularning   o‘qilishi   va   tushunilishi   oson
bo‘lishidir.   Masalan,   Python   tili   sodda   va   intuitiv   sintaksisga   ega   bo‘lib,   yangi
boshlovchilar   uchun   o‘rganish   qulaydir.   Bu   esa   dasturchilarning   tez   o‘zlashtirib,
ishlab chiqarish darajasiga yetishiga yordam beradi.
Vazifalarning muayyan sohalarga yo‘naltirilganligi
Har bir dasturlash tilining o‘ziga xos vazifalari bor. Masalan:
•     Python   -   Sun’iy   intellekt,   mashinani   o‘rganish   va   ma’lumotlarni   tahlil   qilish
sohalarida keng qo‘llaniladi.
•     JavaScript   -   Frontend   va   backend   dasturlashda,   xususan,   veb-saytlarning
dinamik qismi va foydalanuvchi interfeyslarini yaratishda foydalaniladi.
•   C++ - O‘yinni dasturlash, tizim dasturlash va o‘yin motorlarini ishlab chiqishda
qo‘llaniladi.
•  Java - Korxona darajasidagi dasturlar va Android ilovalari yaratishda ishlatiladi.
  Sun'iy intellekt va ma’lumotlar tahlilida ahamiyati
Dasturlash tillari yordamida ma’lumotlarni tahlil qilish va qayta ishlash osonlashdi.
Python   va   R   tillari   sun'iy   intellekt   va   ma’lumotlar   tahlili   sohasida   keng
qo‘llaniladi,  chunki  ular  ko‘plab  matematik  va  statistika   kutubxonalariga  ega.  Bu
orqali katta hajmdagi ma’lumotlarni tahlil qilish, prognozlash va qaror qabul qilish
jarayonlari avtomatlashtiriladi.
Katta hamjamiyat va keng qo‘llanilish imkoniyati
Zamonaviy   dasturlash   tillari   katta   dasturchilar   hamjamiyatiga   ega.   Masalan,
GitHub   va   Stack   Overflow   kabi   platformalarda   ko‘plab   kod   namunalarini   va
5 yechimlarni topish mumkin. Bu tillar uchun yaratilgan darsliklar, kutubxonalar va
qo‘llanmalar yangi dasturchilarning rivojlanishiga yordam beradi.
  Integratsiya va o‘zaro bog‘liqlik
Ko‘plab   dasturlash   tillari   boshqa   dasturlash   tillari   va   texnologiyalar   bilan   birga
ishlash   imkoniyatiga   ega.   Masalan,   Python   va   C++   bilan   birga   ishlovchi
kutubxonalar   mavjud   bo‘lib,   ular   orqali   Python’da   yuqori   darajadagi   kod   yozish
mumkin,   lekin   C++’da   tezkor   hisob-kitoblar   bajariladi.   Bu   esa   dasturlarning
samaradorligini oshiradi.
Avtomatlashtirish va samaradorlikni oshirish
Ko‘plab   zamonaviy   dasturlash   tillari   turli   jarayonlarni   avtomatlashtirishda
qo‘llaniladi.   Misol   uchun,   bash   (skript   yozish),   Python   (vazifalarni
avtomatlashtirish)   va   boshqa   tillar   yordamida   ma'lumotlarni   to'plash,   hisobot
tayyorlash,   testlarni   bajarish   kabi   vazifalar   avtomatlashtiriladi.   Bu   esa   inson
resurslarini tejashga va jarayonlarni tezlashtirishga imkon beradi.
Ochiq kodli loyihalar va ulardan foydalanish
Zamonaviy   dasturlash   tillari   orqali   yaratilgan   ko‘plab   ochiq   kodli   dasturlar
mavjud.   Bu   dasturlar   dasturchilarga   o‘z   loyihalarini   yaratishda   tayyor
komponentlardan   foydalanish   imkoniyatini   beradi.   Masalan,   Django   (Python
uchun) va Laravel (PHP uchun) kabi ochiq kodli freymvorklar veb ilovalarni ishlab
6 chiqishda   keng   yordam
 
7 2.Dasturlash tillarining sinflanishi
2.1 Pastki darajadagi va yuqori darajadagi dasturlash tillari
Pastki darajadagi tillar (masalan, Assembly) kompyuterning ishlash 
jarayoniga yaqin tillardir, yuqori darajadagi tillar (masalan, Python) esa kodning 
o‘qilishi va yozilishi oson bo‘lishiga qaratilgan.
Pastki darajadagi dasturlash tillari
Pastki  darajadagi  dasturlash   tillari  kompyuter   apparatiga  yaqin,  aniq  va  tez
ishlaydigan   tillardir.   Ushbu   tillar   odatda   kompyuterning   apparat   darajasidagi
buyruqlarini   boshqaradi   va   protsessor   bilan   bevosita   muloqot   qiladi.   Bu   tillarga
assembler va mashina kodi kiradi.
Apparatga   yaqinlik   Ushbu   tillar   apparat   tuzilishiga   bevosita   bog'liq   va
kompyuterning ichki resurslarini boshqarishga imkon beradi.
Tez   ishlash:   Pastki   darajadagi   tillarda   yozilgan   kod   ancha   tez   ishlaydi,   chunki   u
apparat darajasidagi buyruqlar bilan to'g'ridan-to'g'ri aloqa qiladi.
Murakkablik va mehnat  talab: Ushbu  tillarda dasturlash ko'p e'tiborni  talab qiladi
va dastur kodingi murakkab va uzun bo'lishi mumkin.
Assembler:   Kompyuterning   apparat   buyruqlari   bilan   ishlash   uchun
foydalaniladi. Assembler kodlar odatda protsessorning o'ziga xos instruktsiyalariga
asoslanadi va uni boshqa tillar kabi o'qish va tushunish qiyinroq.
Mashina   tili:   Bu   kod   0   va   1   lardan   tashkil   topgan   va   to'g'ridan-to'g'ri   apparat
tomonidan tushuniladi. Har bir protsessor o'zining mashina tiliga ega bo'ladi.
Yuqori darajadagi dasturlash tillari
Yuqori   darajadagi   dasturlash   tillari   inson   tomonidan   o'qilishi   osonroq
bo'lgan   tillardir.   Ular   kompyuter   apparatidan   yuqori   darajada   ajratilgan   va   kod
yozish,   tushunish,   hamda   qo'llash   oson.   Yuqori   darajadagi   tillar   kompyuterda
dasturlarni ishlab chiqish jarayonini sezilarli darajada soddalashtiradi.
8 Inson   tomonidan   tushunarli:   Ushbu   tillarning   sintaksisi   inson   tiliga   yaqinroq   va
kodni   tushunish   osonroq.   Ko'pchilik   yuqori   darajadagi   tillar   platformalararo
moslashuvchan bo'lib, turli operatsion tizimlarda ishlay oladi.
Ko'p   funksiyalilik:   Yuqori   darajadagi   tillar   kuchli   kutubxonalar   va   ramkalarni
(framework) taqdim etadi, bu esa dastur yaratishni osonlashtiradi.
Python:   Oddiy   sintaksis   va   kuchli   kutubxonalarga   ega   bo'lgan,   boshlang'ich
darajadagi dasturchilar uchun qulay yuqori darajadagi dasturlash tili.
Java:   Keng   qo'llaniladi   va   platformadan   mustaqil   ishlashga   mo'ljallangan,   "Write
Once, Run Anywhere" prinsipi asosida ishlab chiqilgan.
C++:   Yuqori   tezlik   va   qulaylikni   ta'minlaydigan   tildir,   apparat   darajasiga
yaqinlashish imkonini beradi, lekin yuqori darajada ham ishlatiladi.
JavaScript: Veb-ilovalar va front-end dasturlash uchun keng ishlatiladigan tildir.
Taqqoslash jadvali
Xususiyat Pastki darajadagi tillar Yuqori darajadagi tillar
Apparat bilan yaqinlik Juda yaqin Masofali
Bajarilish tezligi
Tez Nisbatan sekin
Inson tushunishi Murakkab Oson
Platformalararo moslashuv Kam Yuqori
Misollar
Assembler, Mashina tili Python, Java, C++, JavaScript
Qaysi tillar qachon ishlatiladi?
 Pastki darajadagi tillar  odatda operatsion tizimlar, drayverlar, 
mikrokontrollerlar va boshqa apparat bilan bog'liq ilovalarni ishlab 
chiqishda qo'llaniladi.
 Yuqori darajadagi tillar  esa veb-dasturlar, mobil ilovalar, sun'iy intellekt va 
ma'lumotlar tahlili kabi sohalarda keng qo'llaniladi.
9 2.2 Tillarni sinflanishiga oid misollar (C, Java, Python, Haskell, va h.k.)
Tillarni sinflanishi – bu dasturlash tillarini ularning ishlatilishi, xususiyatlari, va
paradigmalari asosida guruhlash usuli. Dasturlash tillarini sinflanishi ularning 
dasturiy ta’minot yaratishdagi yondashuvlarini, moslashuvchanligini va qo‘llanish 
sohalarini aniq belgilaydi. Quyida protseduraviy, obyektga yo‘naltirilgan va 
funksional dasturlash tillarining sinflanishiga oid misollar beriladi.
Protseduraviy dasturlash tillari
Protseduraviy dasturlash tillari buyruqlar ketma-ketligini ta'minlaydi va kodlarni 
ma'lum bir mantiqiy tartibda bajaradi. 
 Oddiy va samarali protseduraviy dasturlash tili bo'lib, tizim dasturlari va 
operatsion tizimlar yaratishda qo'llaniladi.
Pascal: Asosan o'quv va ta'lim maqsadlari uchun ishlatiladi, protseduraviy 
paradigmani yaxshi qo'llab-quvvatlaydi.
#include <stdio.h>
void sayHello() {
    printf("Hello, World!\n");
}
int main() {
    sayHello();
    return 0;
10 }
Obyektga yo'naltirilgan dasturlash tillari
Obyektga yo‘naltirilgan tillar ma'lumotlarni obyektlar ichida saqlash imkoniyatini 
beradi. Ushbu tillar inkapsulyatsiya, meros olish va polimorfizm kabi 
xususiyatlarni qo‘llab-quvvatlaydi.
Java: Obyektga yo‘naltirilgan paradigmani yaxshi qo‘llab-quvvatlaydi va turli 
dasturlarda keng qo‘llaniladi.
Python: Soddaligi va obyektga yo‘naltirilgan dasturlash imkoniyatlari bilan 
mashhur, shuningdek, modullarni qayta ishlatishga yaroqli.
3.1 Sintaksis, semantika va pragmatikaning dasturlash tilidagi roli anniq qilib
malumotlar yozib bering
Dasturlash tili turli darajadagi tushunchalar asosida tashkil etiladi. Bu 
tushunchalar orqali dasturlar aniq va to'g'ri yoziladi, bajariladi va ma'lum bir natija 
beradi. Dasturlash tillarida sintaksis, semantika va pragmatika o'ziga xos va muhim
rol o'ynaydi. Quyida ushbu har bir tushuncha va ularning dasturlash tilidagi roli 
haqida batafsil ma'lumot beriladi.
Sintaksis  – bu dasturlash tilidagi kod yozilishining qoidalari va 
strukturasidir. Dastur kodining qanday yozilishi va tuzilishi sintaksis bilan 
belgilanadi. Har bir dasturlash tili o'ziga xos sintaksisga ega, va bu qoidalarga 
rioya qilinmasa, dastur kompilyator yoki interpretator tomonidan xatolik deb 
hisoblanadi va bajarilmaydi.Sintaksisning roli dasturdagi buyruqlar va iboralar 
11 tuzilishini tartibga solish, dastur kodinga aniq ma'no berish va xatolarni oldini 
olishdir.
Misol: Quyida Python tilida o'zgaruvchi e'lon qilishning to'g'ri va noto'g'ri sintaksis
misollari berilgan:
# To'g'ri sintaksis
 x =  5  
# Noto'g'ri sintaksis
  5  = x 
# Bu xato, chunki o'ng tomonda o'zgaruvchi, chap tomonda qiymat bo'lishi kerak
Semantika  – bu dasturlash tilidagi iboralar va operatorlar orqali bildirilgan ma'no 
yoki mantiq. Semantika dastur qanday ishlashi va qanday natija berishi haqida 
tushunchalar beradi. Sintaksis to'g'ri bo'lganda ham, semantik ma'nosiz ifodalar 
dastur natijasida xatolik yoki noto'g'ri ma'lumotga olib kelishi mumkin.
Semantikaning roli dasturda yozilgan ifodalar va buyruqlarni mantiqiy ma'noga 
ega qilib, dasturdan kutilayotgan natijani ta'minlashdir.
Misol : Quyida semantik xatolarga misol ko'rsatilgan:
x =  5
 y =  "10"  
# Sintaksis to'g'ri, lekin semantika noto'g'ri, chunki int va stringni qo'shib 
bo'lmaydi  
12 result = x + y 
# Bu semantik xato, sababi son va matn qo'shilib bo'lmaydi
Pragmatika  – bu dasturda qo'llanilayotgan kodning samaradorligi, o'qish va 
tushunish qulayligi hamda maqsadga muvofiqligi. Pragmatika orqali dastur 
kodining samaradorligi oshiriladi, u yanada o'qilishi oson va tushunarli bo'ladi. Bu 
asosan dastur yozishda to'g'ri yondashuvlarni qo'llashni, maqbul usullarni tanlashni
anglatadi.
 Pragmatikaning roli  dastur kodini optimallashtirish, samaradorlikni 
oshirish va o'qish oson bo'lgan kod yozishni ta'minlashdan iborat.
Misol : Quyida pragmatik jihatdan samaraliroq dastur misoli berilgan:
# Maqsad: 1 dan 10 gacha sonlarni chop etish  
# Samarasiz usul  
for  i  in   range ( 1 ,  11 ):
  if  i <=  10 : 
print (i)
  # Samarali va o'qishga qulay usul  
for  i  in   range ( 1 ,  11 ): 
print (i)
Yuqoridagi birinchi usulda shart operatori ( if i <= 10 ) qo'shimcha joyni egallaydi 
va ko‘p resurs sarflaydi, ikkinchi usul esa pragmatik jihatdan osonroq va 
samaraliroq.
3.2 Kompilyatsiya va Interpretatsiya Jarayonlari Tushunchasi
13 Dasturlash tilida yozilgan kod kompyuter tomonidan bevosita tushunilmaydi, 
chunki kompyuter faqat mashina kodini tushuna oladi. Shu sababli dasturiy kodni 
mashina tili (binar kod) formatiga o‘tkazish jarayonlari kerak bo‘ladi. Bu 
jarayonlar  kompilyatsiya  va  interpretatsiya  deb ataladi. Har ikki jarayon dastur 
kodini bajarilishida muhim rol o'ynaydi, lekin ular bir-biridan farqli ishlash usuliga
ega.
Kompilyatsiya (Compilation)
Kompilyatsiya   bu   dasturiy   kodni   bir   martalik   jarayon   orqali   mashina   kodiga
(kompyuter tushunadigan tilga) o‘tkazish usuli hisoblanadi. Kompilyatsiya vaqtida
dasturiy kod to‘liq analiz qilinib, mashina kodiga aylantiriladi va yakuniy chiqish
fayl (masalan, .exe fayl) yaratadi.
 Kompilyator  bu jarayonni amalga oshiruvchi dastur bo‘lib, u kodni mashina
tiliga to‘liq o‘giradi va xatoliklarni tekshiradi.
 Kompilyatsiyalanuvchi   tillar :   C,   C++,   Java   (qisman),   Rust   va   boshqa   tillar
kompilyatsiyalanadigan tillar qatoriga kiradi.
Kompilyatsiya jarayoni bosqichlari :
1. Leksik   analiz :   Koddagi   belgilarning   to‘g‘riligini   tekshiradi   va   ularni   tahlil
qiladi.
2. Sintaktik analiz : Kod tuzilishini tekshiradi.
3. Semantik analiz : Kodingizning mantiqiy xatolarini tekshiradi.
4. Optimallashtirish :   Dastur   samaradorligini   oshirish   uchun   kodni
optimallashtiradi.
5. Mashina kodiga o‘girish : Kodni bajarilishi uchun mashina tiliga o‘giradi va
ijro faylini yaratadi.
14 Misol :   C   yoki   C++   dastur   yozilganda,   kompilyatsiyadan   so'ng   dastur   ijro   fayl
(.exe)   yaratadi.   Ushbu   faylni   istalgan   paytda   kompyuterda   bajarish   mumkin   va   u
boshqa fayllarga bog‘liq emas.
Kompilyatsiyaning afzalliklari :
 Tez   ishlaydi,   chunki   kod   bir   marta   kompilyatsiya   qilingandan   so'ng   yana
o'zgartirilmaydi.
 Xatolar kompilyatsiya vaqtida aniqlanadi, bu esa dastur bajarilishidan oldin
xatolarni tuzatish imkonini beradi.
Kompilyatsiyaning kamchiliklari :
 Katta hajmli dasturlar kompilyatsiyalanishi uzoq vaqt olishi mumkin.
 Har bir o‘zgarishdan so‘ng kodni qayta kompilyatsiya qilish talab etiladi.
2. Interpretatsiya (Interpretation)
Interpretatsiya   bu   dasturiy   kodni   qadam-baqadam   o‘qish   va   bajarish   jarayoni.
Interpretor dasturiy kodni bir yo‘la mashina tiliga o‘tkazmaydi, balki kodning har
bir qatorini ketma-ket o‘qib, darhol bajaradi.
 Interpretator  bu jarayonni amalga oshiruvchi dastur bo‘lib, u kodni qatorma-
qator o‘qib, natijani chiqaradi.
 Interpretatsiyalanuvchi   tillar :   Python,   JavaScript,   Ruby,   PHP   kabi   tillar
interpretatsiya yordamida ishlaydi.
Interpretatsiya jarayoni bosqichlari :
1. Kodning o'qilishi va tahlili : Har bir qator birma-bir o'qiladi.
15 2. Qatorning bajarilishi : Har bir qator darhol bajariladi va natijasi chiqariladi.
 4. Sintaksisni tasvirlash usullari
     4.1 Sintaksis daraxtlari va grammatik qoidalar
Dasturlash tilini to‘g‘ri va aniq ishlatishda  sintaksis daraxtlari  va  grammatik 
qoidalar  muhim rol o‘ynaydi. Har qanday dastur yozilganda, tilning sintaktik 
qoidalari asosida tashkil etilgan bo‘lishi kerak. Ushbu qoidalar orqali dastur 
qanday tuzilishi va qanday ma'noda ishlashi belgilab beriladi.
Sintaksis Daraxtlari (Syntax Trees)
Sintaksis daraxtlari  bu dasturiy kodning tuzilishini ko‘rsatish uchun 
foydalaniladigan iyerarxik strukturalardir. Daraxtlar dasturiy koddagi buyruqlar, 
iboralar va operatorlar qanday tuzilganini ko‘rsatadi. Har bir tugun biror 
grammatik qoidaga javob beruvchi ifoda yoki operatorni ifodalaydi.
Sintaksis daraxtlari dasturiy kodni kompilyator yoki interpretator tomonidan tahlil 
qilishda qo‘llaniladi va kodning tuzilishini tushunishga yordam beradi.
 Katta tugunlar  (root) kodning umumiy tarkibini ifodalaydi.
 Ichki tugunlar  ifodalar yoki buyruqlarni tashkil etadi.
 Barglar  kodning yakuniy elementlari (masalan, o‘zgaruvchilar yoki 
qiymatlar) hisoblanadi.
16 Misol : Quyida oddiy arifmetik ifodaning sintaksis daraxti ko‘rsatilgan:  3 + 4 * 5
Grammatik Qoidalar (Grammar Rules)
Grammatik qoidalar  bu dasturlash tilida qabul qilingan tuzilmalarni ifodalash 
uchun qo‘llaniladigan qoidalar majmuidir. Grammatik qoidalar dasturdagi 
buyruqlar, iboralar va ifodalar qanday tartibda kelishi va qanday sintaksis tuzilishi 
kerakligini belgilaydi. Bu qoidalar yordamida dasturiy kod qanday qilib 
kompilyatsiya qilinishi yoki interpretatsiya qilinishi kerakligini aniqlanadi.
Grammatik qoidalar, odatda,  Backus-Naur formati (BNF)  yoki  Eğri Chiziqli 
Grammatikalar  orqali yoziladi.
Misol : Quyida BNF formatida oddiy grammatik qoidalar keltirilgan:
 <ifoda> ::= <raqam> | <ifoda> + <ifoda> | <ifoda> * <ifoda>
 <raqam> ::= "0" | "1" | "2" | "3" | ... | "9"
Yuqoridagi grammatik qoidalarda:
 <ifoda>  qo‘shish va ko‘paytirish amallarini o‘z ichiga olgan matematik 
ifoda sifatida belgilangan.
 <raqam>  har bir raqamni ifodalaydi.
Grammatik qoidalar kompilyator yoki interpretator uchun dasturiy kodning 
tuzilishini aniqlashda asosiy yo‘l ko‘rsatkich sifatida xizmat qiladi.
17 Sintaksis Daraxtlari va Grammatik Qoidalarning Dasturlashda Ahamiyati
1. Kod tuzilishini aniqlash : Daraxt strukturalar va grammatik qoidalar dastur 
qanday qilib tuzilganini va qanday bajarilishi kerakligini aniqlashga yordam 
beradi.
2. Xatolarni aniqlash va tuzatish : Grammatik qoidalar buzilgan hollarda 
kompilyator xatolarni aniqlab beradi va dasturning to‘g‘ri ishlashiga yordam
beradi.
3. Kompilyatsiya va optimallashtirish : Daraxt struktura yordamida 
kompilyator kodni optimallashtiradi va samaradorligini oshiradi.
4. Kodning yengilligi va ko‘p ishlatilishi : Grammatik qoidalar va daraxt 
strukturalari orqali dasturiy kod samaraliroq ishlaydi va oson o‘qiladi.
Xulosa
Dasturlash tillari axborot texnologiyalari sohasida tub burilish yasagan va 
kompyuter texnologiyalari rivojlanishiga katta hissa qo‘shgan vositalardan biridir. 
Ular dasturchilarga aniq ko‘rsatmalarni kompyuterga yetkazish, masalalarni 
yechish va yangi mahsulotlarni yaratishda yordam beradi. Dasturlash tillarining 
rivojlanishi bilan dasturchilar uchun o‘z loyihalarini amalga oshirishda yanada 
samarali, tez va oson usullar paydo bo‘ldi.Dasturlash tillari ikki asosiy sinfga 
bo‘linadi: pastki va yuqori darajadagi tillar. Pastki darajadagi tillar kompyuterning 
apparatiga yaqin ishlaydi va aniq jarayonlarni boshqarish imkonini beradi. 
Masalan, assembler tili kompyuter apparati bilan bevosita muloqot qilish imkonini 
18 beradi, bu esa tezkor va samarali hisoblashlarni amalga oshirish uchun qulaydir. 
Yuqori darajadagi tillar esa inson o‘qishiga qulay va tushunarli ko‘rsatmalar 
yordamida dasturlar yozish imkonini beradi. Bu tillar ko‘p qirrali va umumiy 
vazifalarni bajarish uchun qulay hisoblanadi. Misol uchun, Python, Java va C++ 
kabi tillar yuqori darajadagi tillarga kiradi va turli dasturiy ta’minotlarda keng 
qo‘llaniladi.Dasturlash tillarining zamonaviy sinflari, masalan, protseduraviy, 
obyektga yo‘naltirilgan, va funksional dasturlash tillari dasturiy ta’minotni ishlab 
chiqishda turli usullarni qo‘llash imkonini beradi. Protseduraviy dasturlash 
ko‘pincha ketma-ketlikka asoslangan vazifalarni bajarish uchun ishlatiladi, 
obyektga yo‘naltirilgan dasturlash esa obyektlar va sinflarga asoslangan bo‘lib, 
ma’lumotlarni qayta ishlash jarayonini yanada soddalashtiradi va yanada kompleks
dasturlar yaratish imkonini beradi. Funksional dasturlash esa matematik 
funktsiyalarga asoslanadi va bugungi kunda ko‘plab yangi dasturlash tillarida 
qo‘llanilmoqda.Sintaksis va semantika dasturlash tillarida muhim rol o‘ynaydi, 
chunki bu tushunchalar tilning tuzilishi va ma’nosini belgilab beradi. 
Foydalangan adabiyotlar
1. Aho, A. V., & Ullman, J. D. (1995).  Foundations of Computer Science: C 
Edition . Computer Science Press.
2. Kernighan, B. W., & Ritchie, D. M. (1988).  The C Programming Language . 
Prentice Hall.
3. Sebesta, R. W. (2016).  Concepts of Programming Languages  (11th ed.). 
Pearson.
4. Stroustrup, B. (2013).  The C++ Programming Language  (4th ed.). Addison-
Wesley.
19 5. Tucker, A. B., & Noonan, R. E. (2006).  Programming Languages: 
Principles and Paradigms . McGraw-Hill.
6. Gabbrielli, M., & Martini, S. (2010).  Programming Languages: Principles 
and Paradigms . Springer.
7. Mitchell, J. C. (2002).  Concepts in Programming Languages . Cambridge 
University Press.
8. Louden, K. C., & Lambert, K. A. (2011).  Programming Languages: 
Principles and Practice  (3rd ed.). Cengage Learning.
9. Scott, M. L. (2009).  Programming Language Pragmatics  (3rd ed.). Morgan 
Kaufmann.
10. Hennessy, J. L., & Patterson, D. A. (2011).  Computer Organization and 
Design: The Hardware/Software Interface  (4th ed.). Morgan Kaufmann.
20

Mavzu: Dasturlash tillari tuzilish, sinflanishi va sintaksisni tasvirlash metodlari . Reja: 1.Kirish 1.Dasturlash tillarining umumiy tavsifi va ahamiyati 1.1 Dasturlash tillarining kelib chiqishi va rivojlanishi 1.2 Zamonaviy dasturlash tillarining asosiy ahamiyati va ularning vazifalari 2.Dasturlash tillarining sinflanishi 2.1 Pastki darajadagi va yuqori darajadagi dasturlash tillari 2.2 Tillarni sinflanishiga oid misollar (C, Java, Python, Haskell, va h.k.) 3.Dasturlash tillarining tuzilishi 3.1 Sintaksis, semantika va pragmatikaning dasturlash tilidagi roli 3.2 Kompilyatsiya va interpretatsiya jarayonlari tushunchasi 4.Sintaksisni tasvirlash usullari 4.1 Sintaksis daraxtlari va grammatik qoidalar 6. Xulosa 7.Foydalangan adabyotlar 1

Kirish Dasturlash tillari insonlar va kompyuterlar o‘rtasida o‘zaro muloqotni osonlashtiradigan vositalar bo‘lib, ular dasturchilarga o‘z loyihalarini yaratishda yordam beradi. Bu tillar kompyuterga aniq vazifalarni bajarishni buyurish uchun dasturchilarga ko‘rsatmalar yozish imkonini beradi. Dasturlash tillarining rivojlanishi bilan ularning turlari va uslublari ko‘payib bormoqda, bu esa dasturlashni kengroq maqsadlarda qo‘llashga yordam bermoqda.Dasturlash tillari kompyuterlar bilan aloqa qilishda muhim rol o‘ynaydi, chunki ular kompyuterlarga aniq ko‘rsatmalar berish uchun zarur bo‘lgan mantiqiy va matematik qoidalarni belgilaydi. Birinchi dasturlash tillari 1950-yillarda yaratilgan bo‘lsa, bugungi kunda zamonaviy dasturlash tillari murakkab va ko‘p funksiyali dasturlar yaratish imkonini beradi.Dasturlash tillari uzoq tarixga ega bo‘lib, dastlab ular matematik muammolarni hal qilish va bilimlar almashish uchun ishlatilgan. Misol uchun, 1957 yilda Fortran (Formula Translation) birinchi yuqori darajali dasturlash tili sifatida paydo bo‘ldi va u asosan ilmiy va injenerlik hisob-kitoblarida foydalanildi. O‘tgan yillarda turli xil paradigmalarga ega bo‘lgan dasturlash tillari yaratilib, ular bugungi kunda keng qo‘llanilmoqda.Zamonaviy dasturlash tillari yordamida dasturchilar keng ko‘lamli vazifalarni bajarishlari mumkin. Bu tillar murakkab hisob-kitoblar, katta hajmdagi ma’lumotlar bilan ishlash, o‘yinlar va boshqa grafik ilovalarni ishlab chiqish imkonini beradi. Hozirgi kunda mashinasozlik, moliya, sog‘liqni saqlash, axborot xavfsizligi va boshqa ko‘plab sohalarda dasturlash tillari muhim rol o‘ynaydi. C++, Java, Python, va JavaScript kabi tillar keng qo‘llanilib, dasturchilarga o‘z loyihalarini tezkor va samarali bajarishda yordam 2

beradi.Axborot texnologiyalari sohasida dasturlash tillarining ahamiyati ortib bormoqda, chunki har bir texnologiya o‘ziga xos muammolarni hal qilish uchun mo‘ljallangan. Zamonaviy dasturlash tillari orqali kompyuter texnologiyalaridan yanada kengroq foydalangan holda yangi dasturiy mahsulotlar va xizmatlar ishlab chiqilmoqda. Internet ilovalarining ko‘payishi bilan veb-dasturlash tillari, xususan, HTML, CSS, JavaScript kabi tillar keng ommalashgan. 1. Dasturlash tillarining umumiy tavsifi va ahamiyati 1.1 Dasturlash tillarining kelib chiqishi va rivojlanishi Kompyuterda dasturlash bu – kompyuter mikroprotsessori uchun turli buyruqlar berish, qachon, qayerda nimani o'zgartirish va nimalarni kiritish yoki chiqarish haqida buyruqlar berishdir. Ushbu maqolada, qanday dasturlash tillari borligi, eng keng tarqalgan dasturlash tillari va ularning farqi. Hamda, Dasturlashni o'rganish yo'llari haqida suhbatlashamiz Kompyuter dunyosida ko'plab dasturlash tillari mavjud bo'lib, dasturlash va unga qiziquvchilar soni ortib bormoqda. Bir xil turdagi ishni bajaradigan dasturlarni Basic, Pascal, Ci va boshqa tillarda yozish mumkin. Pascal, Fortran va Kobol tillari universal tillar hisoblanadi, Ci va Assembler tillari mashi tiliga ancha yaqin tillar bo'lib, quyi yoki o'rta darajali tillardir. Algoritmik til inson tillariga qanchalik yaqin bo'lsa, u tilga yuqori darajali til deyiladi. Mashina tili esa eng pastki darajali tildir. Mashina tili bu sonlardan iboratdir, Masalan: 010110100010101 Dasturlash tillari 2 ta katta guruhlarga bo'linadi, Quyi va Yuqori darajali dasturlash tili. Quyi darajali dasturlash tili ancha murakkab bo'lib ular juda maxsus sohalarda ishlatiladi va ularning mutaxassislari ham juda kam. Chunki quyi dasturlash tillari (masalan: assembler) ko'pincha miktoprotsessorlar bilan ishlashda kerak bo'lishi mumkin. Odatda turli dasturlash 3

ishlari uchun yuqori darajali dasturlash tilidan keng foydalaniladi. EHM (Elektron Hisoblash Mashinasi) endi yuzaga kelgan paytda programma tuzishda, faqat mashina tillarida, ya'ni sonlar yordamida EHM bajarishi kerak bo'lgan amallarning kodlarida kiritilgan. Bu holda mashina uchun tushinarli sanoq, sistemasi sifatida 2 lik, 6 lik, 8 lik sanoq sistemalari bo'lgan. Programma mazkur sanoq sistemasidagi sonlar vositasida kiritilgan. Yuqori darajali dasturlashda, mashina tillariga qaraganda mashinaga moslashgan (yo'naltirilgan) belgili kodlardagi tillar hisoblanadi. Belgilar kodlashtirilgan tillarning asosiy tamoyillari shundaki, unda mashina kodlari ularga mos belgilar bilan belgilanadi, hamda xotirani avtomatik taqsimlash va xatolarni tashhis qilish kiritilgan. Bunday mashina moslashgan til - ASSEMBLER tili nomini oldi. 1.2 Zamonaviy dasturlash tillarining asosiy ahamiyati va ularning vazifalari Universallik va moslashuvchanlik Zamonaviy dasturlash tillari (masalan, Python, JavaScript, Java, C++, va boshqalar) ko‘plab platformalarda va operatsion tizimlarda ishlaydi. Bu tillarning moslashuvchanligi ularning keng tarqalishiga va ko‘p sohalarda qo‘llanishiga sabab bo‘lgan. Masalan, Python tilida veb-sayt yaratish, sun’iy intellekt algoritmlarini tuzish, dasturlarni avtomatlashtirish kabi vazifalarni bajarish mumkin. Yuqori darajada samarali kod yozish Zamonaviy dasturlash tillari kod yozish samaradorligini oshiruvchi funksiyalar va kutubxonalarni taqdim etadi. Misol uchun, Python’ning NumPy kutubxonasi matematik hisob-kitoblarni tez va oson bajarishga imkon beradi, HTML va CSS yordamida esa veb sahifalarni tez va oson ishlab chiqish mumkin. 4

Kodning o‘qilishi va tushunilishi Dasturlash tillarining ahamiyatli jihati ularning o‘qilishi va tushunilishi oson bo‘lishidir. Masalan, Python tili sodda va intuitiv sintaksisga ega bo‘lib, yangi boshlovchilar uchun o‘rganish qulaydir. Bu esa dasturchilarning tez o‘zlashtirib, ishlab chiqarish darajasiga yetishiga yordam beradi. Vazifalarning muayyan sohalarga yo‘naltirilganligi Har bir dasturlash tilining o‘ziga xos vazifalari bor. Masalan: • Python - Sun’iy intellekt, mashinani o‘rganish va ma’lumotlarni tahlil qilish sohalarida keng qo‘llaniladi. • JavaScript - Frontend va backend dasturlashda, xususan, veb-saytlarning dinamik qismi va foydalanuvchi interfeyslarini yaratishda foydalaniladi. • C++ - O‘yinni dasturlash, tizim dasturlash va o‘yin motorlarini ishlab chiqishda qo‘llaniladi. • Java - Korxona darajasidagi dasturlar va Android ilovalari yaratishda ishlatiladi. Sun'iy intellekt va ma’lumotlar tahlilida ahamiyati Dasturlash tillari yordamida ma’lumotlarni tahlil qilish va qayta ishlash osonlashdi. Python va R tillari sun'iy intellekt va ma’lumotlar tahlili sohasida keng qo‘llaniladi, chunki ular ko‘plab matematik va statistika kutubxonalariga ega. Bu orqali katta hajmdagi ma’lumotlarni tahlil qilish, prognozlash va qaror qabul qilish jarayonlari avtomatlashtiriladi. Katta hamjamiyat va keng qo‘llanilish imkoniyati Zamonaviy dasturlash tillari katta dasturchilar hamjamiyatiga ega. Masalan, GitHub va Stack Overflow kabi platformalarda ko‘plab kod namunalarini va 5