Bu nima?

Dasturlash tillari nima va ularning turlari

Maqolada dasturlash tillari nima uchun kerakligi, qanday ommabop tillar borligi, ularni o‘rganishni nimadan boshlash haqida so‘z yuritamiz.

Dasturlash tillari nima?

Tasavvur qiling, uyingizni ta’mirlayapsiz: javonlarni oʻrnatyapsiz, mebellarni yig‘yapsiz. Bu ishni asboblarsiz uddalay olmaysiz: ko‘p funksiyali shurupovyort shkafni tezda yig‘ish, devorda teshik ochish, mahkamlash elementlarini oʻrnatishga yordam beradi. Otvyortka esa shuruplarni burash yoki mebelni ta’mirlash uchun yaraydi.

Dasturlarni yozishda dasturchilar ham vositalar — tillardan foydalanadi. Ular yordamida kompyuter bilan “suhbatlashish”: unga buyruqlar berish, boshqarish, ma’lumotlarni o‘zgartirish, hisob-kitoblarni amalga oshirish va boshqa ko‘p amallarni bajarish mumkin.

Dasturlash tillari kompyuter dasturlarini yaratishda ishlatiladigan tillardir.

Turli manbalarning ma’lumotlariga ko‘ra, jami 250 tadan 9000 tagacha dasturlash tillari mavjud. Ularning soni yil sayin ko‘payib bormoqda. Har biri turli maqsadlarda ishlatilgani uchun ular shunchalik ko‘p. Bu xuddi mebel to‘plamini yig‘ish uchun ishlatiladigan og‘ir shurupovyort yoki bir juft shurupni ehtiyotkorlik bilan oʻrnatish uchun kerak boʻladigan oddiy otvyortkadan foydalanishga o‘xshaydi. 

Dastlab dasturlash tillarining turlari, dasturchining vositalari, keyin esa ularning qanday vazifalar uchun mos kelishini ko‘rib chiqaylik.

Dasturlash tillarining turlari

Kompilyatsiya va interpretatsiya qilinadigan tillar

Oʻzi chet tilini bilmagani uchun delegatlar xalqaro ishbilarmonlik uchrashuvlariga tarjimonlar bilan birga boradi.

Kompyuterning “miyasi” hisoblangan protsessor ham dasturchi dasturlash tilida yozgan kodni tushunmaydi. Protsessor faqatgina nol va birlardan iborat ketma-ketlikni qabul qiladi. Dasturchi va kompyuter bir-birini tushunishiga ham maxsus tarjimonlar: kompilyator va interpretatorlar yordam beradi.

Dastur ishga tushirilishi bilan kompilyator butun kodni darhol (nol va birlardan iborat) mashina kodiga o‘giradi. Kompilyatorning ishlash jarayonini quyidagicha tasvirlash mumkin:

Dasturchi dasturni dasturlash tilida yozadi → Kompilyatorni ishga tushiradi → Kompilyator butun dasturni mashina kodiga o‘giradi va uni bajariluvchi faylga (Windowsʼdagi .exe) joylashtiradi.

C, C++, Java, Swift, Go kompilyatsiya qilinadigan dasturlash tillariga kiradi.

Har safar dastur ishga tushganda interpretator kodni satrma-satr mashinaga tushunarli tilga o‘giradi.

Interpretatsiya qilinadigan tillarda yozilgan dasturlar ko‘pincha kompilyatsiya qilinadigan dasturlarga qaraganda sekinroq ishlaydi. Bu kodning satrma-satr tarjima qilinishi bilan bog‘liq. Biroq interpretatsiya qilinadigan tilda dastur ishlab chiqish jarayoni kompilyatsiya qilinadigan tildagiga qaraganda tezroq. Chunki dasturchiga dasturiy kodni qayta-qayta mashina tiliga kompilyatsiya qilish shart emas.

Python, PHP, JavaScript interpretatsiya qilinadigan dasturlash tillari qatoriga kiradi.

Yuqori va quyi darajali dasturlash tillari

Kompilyator va interpretator ixtiro qilingunga qadar dasturchilar kodni mashina tilida qo‘lda yozgan. Bunday tilda yozilgan kod har bir kompyuter uchun turlicha edi. Chunki har bir protsessor ishlab chiqaruvchisi oʻzining maxsus buyruqlar toʻplamiga ega boʻlgan. Kodni yozishda ana shu buyruqlardan foydalangan.

Dasturchilar mashina tilida kod yozish uchun ko‘p vaqt va kuch sarflagan. Vaqt o‘tishi bilan ular kompyuterni yozilishi jihatidan bizning tabiiy tillarimizga yaqin bo‘lgan dasturlash tillarini tushunishga o‘rgatdi. Shu tarzda dasturlash tillarini shartli ravishda yuqori va quyi (mashina tili ham quyi darajaga kiritildi) darajalarga ajratish paydo bo‘ldi.

Quyi darajali tillarga assembler tili ham kiritildi. Dasturchilar uchun unda kod yozish mashina kodini yozishga qaraganda biroz osonroq. Lekin baribir unchalik qulay emas. Assembler tilida ham xuddi mashina tilida boʻlgani kabi funksiya, ma’lumotlar strukturasi, ro‘yxat va obyektlar mavjud emas.

Dasturchiga yuqori darajali tillardagi kodni o‘qish oson va tushunarli. Bunday tillar dasturlarni turli xil protsessorlarga mos kelishi haqida o‘ylamasdan yaratish imkonini beradi. Yuqori darajali tillar kompilyatsiya yoki interpretatsiyani talab qiladi. Java, JavaScript, Python, Ruby, PHP va boshqalar shunday tillar sirasiga kiradi.

Statik va dinamik tipizatsiyaga ega tillar

Tasavvur qiling, ko‘chib o‘tyapsiz va buyumlaringizni qutilarga solyapsiz. Oshxona, mehmonxona va yotoqxona buyumlari qaysi qutiga solinganini bilish uchun ularni belgilaysiz. Mana shu — tipizatsiya.

Tipizatsiya — dasturlash tili axborotni tasniflaydigan qoidalar to‘plami. Tipizatsiya tufayli kompyuter qanday ma’lumotlarni qayta ishlashi, ular bilan qanday amallar bajarishi va bo‘lajak operatsiya uchun qancha xotira hajmi kerakligini tushunadi.

Agar tilda tipizatsiya bo‘lmasa, dasturchi o‘zgaruvchiga istalgan turdagi ma’lumotni (satr, son) tayinlashi, keyin esa shu o‘zgaruvchiga boshqa turdagi ma’lumotni kiritishi mumkin. Bu kodni tezroq yozish imkonini beradi. Ammo belgilanmagan qutilarni adashtirib yuborish mumkin bo‘lgani kabi bunday kodda ham chalkashib ketish ehtimoli bor.

Qutilarni turlicha belgilash mumkin boʻlgani kabi dasturlash tillarida ham tipizatsiya turlicha bo‘ladi. Statik tipizatsiya dasturdagi ma’lumotlar turini u ishga tushishidan oldin (kompilyatsiya vaqtida) aniqlaydi.

Statik tipizatsiyaga ega tillar — Java, C++, Swift.

Dinamik tipizatsiyali tillarda o‘zgaruvchining turi dastur ishga tushirilgan paytda aniqlanadi. O‘zgaruvchi turini ochiq shaklda koʻrsatishning hojati yo‘q: interpretator uni dasturning ishlash jarayonida aniqlab oladi. Dinamik tipizatsiyali tilda yaratilgan dasturga tuzatish kiritish va uning funksionaliligini kengaytirish qiyinroq boʻladi.

Dinamik tipizatsiyali tillar — Python, JavaScript, Ruby.

Universal va maxsus tillar

Turli maqsad va sohalarda qo‘llanishi mumkin bo‘lgan tillar mavjud. Ular universal tillar deb ataladi. Masalan, C++ murakkab bo‘lmagan hisoblash dasturlarini ishlab chiqishda ham, yuqori yuklamali ilova, o‘yinlar yaratish uchun ham mos keladi.

Maxsus dasturlash tillari (yoki domen-ixtisoslashgan tillar)dan muayyan turdagi vazifalar uchun foydalangan yaxshi. Masalan, ma’lumotlar bazalariga so‘rovlar yuborishda ishlatiladigan SQL, veb sahifalarni loyihalash va joylashtirishda qo‘llanadigan HTML yoki CSS.

Ezoterik tillar

Amaliy vazifalar uchun mos kelmaydigan va faqat tajriba o‘tkazish yoki ko‘ngilochar loyihalarda ishlatiladigan tillar guruhi mavjud. Ezoterik tillar dasturchilarga g‘ayrioddiy g‘oyalarni ro‘yobga chiqarish, tillarning imkoniyatlarini o‘rganish imkonini beradi. Shuningdek, aql va tasavvurning qayishqoqligini rivojlantirishga yordamlashadi.

Masalan, Piet dasturlash tilidagi dastur mavhum manzara ko‘rinishida boʻladi. Chef dasturlarni pazandachilik retsepti sifatida yozadi. ArnoldCʼning buyruqlari esa Arnold Shvarsenegger ishtirokidagi filmlardan iqtiboslardir.

Vizual tillar

Ba’zan katta hajmdagi ma’lumotlarni matnli kod bilan ifodalash murakkab bo‘ladi. Biroq ularni bloklarga ajratib, sxema ko‘rinishida tasvirlash qulay. Bunday holatlarda vizual dasturlash tillaridan foydalanish maqsadga muvofiq boʻladi. Shunda kod grafik elementlar (blok va tasvirlar) yordamida yoziladi.

Vizual tillarda kod yozish ancha oson va tushunarli tarzda amalga oshiriladi. Shu sabab yangi boshlayotgan mutaxassislar uchun u bilan ishlash qulay. Scratch, Blockly, Substance Designer vizual tillarga kiradi.

Qanday dasturlash tillari bor va ular qayerda qo‘llanadi?

Yuqorida aytib o‘tganimizdek, har bir dasturlash tili ma’lum bir vazifalar uchun mo‘ljallangan. Keling, eng ommabop tillar, ularning qayerda qo‘llanishi va ahamiyatli xususiyatlarini koʻrib chiqamiz.

Python

Qoʻllanish sohalari. Python mashinani o‘qitish va sun’iy intellekt sohalari, veb ilovalarni ishlab chiqish, ma’lumotlar tahlili, o‘yinlarni dasturlashda ishlatiladi. Pythonʼdan Dropbox, Spotify, Netflix, Uber kabi mashhur ilovalar foydalanadi.

Tilning ommabopligi. Python eng oddiy va qulay dasturlash tillaridan biridir. U 2023-yil sentyabr oyidagi TIOBE indeksiga koʻra eng ommabop tillar reytingida birinchi o‘rinni egalladi.

Tilning o‘ziga xos xususiyatlari. Python tushunarli sintaksis, ko‘plab kutubxona va freymvorklarga (dasturlash jarayonini soddalashtiruvchi va tezlashtiruvchi vosita hamda qoidalarga) ega. Biroq Pythonʼda yozilgan dasturlarning ishlash tezligi pastroq bo‘ladi.

JavaScript

Qoʻllanish sohasi. JavaScript veb-sayt interfeysi, veb ilova, brauzer kengaytmalari, mobil ilova, ilovalarning server qismi (bekend) ishlab chiqish uchun juda mos. JSʼdan frontend va bekendlarini ishlab chiqishda Slack, Discord, Microsoft Teams, Uber, Amazon, Apple foydalanadi.

Tilning ommabopligi. 2023-yil sentyabr oyidagi TIOBE indeksida JavaScript oltinchi o‘rinni egalladi. GitHub Octoverseʼning 2022-yildagi reytingida esa JavaScript eng ommabop til bo‘lib, birinchi o‘rinni egalladi.

Tilning o‘ziga xos xususiyatlari. JS yuqori tezlik va ish unumdorligiga ega. Unda ko‘plab kutubxona, ma’lumotlar bazalari, test va monitoringni avtomatlashtirish vositalari mavjud.

Java

Qo‘llanish sohasi. Ilovalar va krossplatformali veb-saytlarning bekendini ishlab chiqish uchun mos dasturlash tili. Java Amazon, Netflix va Spotify kabi xizmatlarning server qismini yaratishda qo‘llanadi.

Tilning ommabopligi. IEEE Spectrum (Elektrotexnika va elektronika muhandislari instituti) jurnali ma’lumotlariga ko‘ra, 2023-yilda Java eng ommabop dasturlash tillari reytingida ikkinchi o‘rinni egallagan. TIOBE indeksiga koʻra esa to‘rtinchi o‘rinda turadi.

Tilning o‘ziga xos xususiyatlari. Java sodda sintaksis, o‘qish oson boʻlgan ixcham kod, o‘rnatilgan kutubxona va freymvorklarga ega.

PHP

Qoʻllanish sohasi. PHP dastlab shaxsiy veb sahifalarni yaratishda ishlatilgan. Bugungi kunda u bekendda qo‘llanadi. Ko‘pincha HTML va JavaScript bilan birgalikda ishlatiladi. Ted.com loyihasi, Dailymotion video hostingi, BlaBlaCar platformasini ishlab chiqishda PHPʼdan foydalanilgan.

Tilning ommabopligi. PHPʼning ommabopligi asta-sekin oshib bormoqda. TIOBE indeksi ma’lumotlariga ko‘ra, 2023-yil sentyabr oyida u Go, Swift, Ruby va boshqa dasturlash tillarini ortda qoldirib, sakkizinchi o‘rinni egallagan. GitHub Octoverseʼning 2022-yildagi reytingiga koʻra PHP yettinchi o‘rinda boʻlgan.

Tilning o‘ziga xos xususiyatlari. PHP’ning manba kodini o‘qish juda oson, til bilan ishlaydigan dasturchilarning katta hamjamiyati mavjud. Ammo bu tildagi kodning xavfsizlik darajasi va ish unumdorligi past.

C/C++

Qoʻllanish sohalari. C va C++ yuqori yuklamali dasturiy ta’minot, o‘yinlar, robotlar uchun dastur ishlab chiqishga mos keladi. Bu dasturlash tillaridan Microsoft Office, Adobe Illustrator hamda World of Warcraft kabi o‘yinlarni yaratishda foydalaniladi.

Tillarning ommabopligi. TIOBE indeksiga ko‘ra, 2023-yil sentyabr oyida C va C++ eng ommabop dasturlash tillari ro‘yxatida ikkinchi va uchinchi o‘rinlarni egallagan. 2023-yilgi IEEE reytingida esa C va C++ Python va Java’dan keyin uchinchi hamda to‘rtinchi o‘rinlarda boʻlgan.

Tillarning o‘ziga xos xususiyatlari. C va C++ tillaridan xotirani aniq boshqarish va joy tejash zarur bo‘lganda foydalaniladi. C va C++ yuqori ish unumdorligi va katta hamjamiyati bilan AyTi mutaxassislarni oʻziga jalb qiladi. Biroq bu tillarda sifatli kod yozish uchun kompyuterning tarkibiy qismlari qanday ishlashini yaxshi tushunish kerak. Bundan tashqari, C va C++ da veb ishlanmalar uchun kutubxonalar JavaScript yoki Pythonʼdagi kabi unchalik ko‘p emas.

Go

Qoʻllanish sohalari. Yuqori yuklamali bekend yaratishda ishlatiladi. Goʼdan Uber, Netflix, Facebook kabi platformalarni ishlab chiqishda foydalanilgan.

Tilning ommabopligi. IEEEtalqiniga ko‘ra, 2023-yilda Go ommabopligi bo‘yicha Swift, Ruby, Kotlin va boshqa tillarni ortda qoldirib sakkizinchi o‘rinni egallagan.

Tilning oʻziga xos xususiyatlari. Go sintaksisi sodda va tushunarli boʻlib, keng ko‘lamdagi vosita hamda kutubxonalarga ega. Go yuqori yuklamali veb ilovalar uchun juda mos keladi.

C# (sharp)

Qoʻllanish sohasi. C# tili Microsoft kompaniyasi tomonidan .NET platformasida ilovalar ishlab chiqish maqsadida yaratilgan. U Teslaʼning korporativ veb-xizmat va dasturlari, Ozonʼning ombor, logistika tizimlari, Sberbankʼning 3D grafikalarini ishlab chiqishda qo‘llanadi.

Tilning ommabopligi. 2023-yil sentyabr oyidagi TIOBE indeksiga ko‘ra, C# beshinchi o‘rinni egallagan. GitHub Octoverse reytingiga ko‘ra ham C# beshinchi o‘rinni saqlab qolgan.

Tilning o‘ziga xos xususiyatlari. C# katta dasturchilar hamjamiyatiga ega, ixcham va oson o‘qiladigan kod ishlab chiqishni ta’minlaydi.

Swift

Qo‘llanish sohasi. iOS va macOS ilovalarini ishlab chiqish uchun mo‘ljallangan dasturlash tili. Jumladan, iOS FireFox va WordPress uchun mobil ilovalar Swift dasturlash tili yordamida ishlab chiqilgan.

Tilning ommabopligi. 2023-yilda Swift bir vaqtning o‘zida ikkita nufuzli reyting — TIOBE va IEEE ro‘yxatlarida o‘n oltinchi o‘rinni egallagan.

Tilning oʻziga xos xususiyatlari. Swift oddiy sintaksis, dasturlarning yuqori ishlash tezligi va xotirani boshqarishni qo‘llab-quvvatlashga ega. Biroq kam sonli o‘rnatilgan vosita va kutubxonalar bu tilda ishlashni murakkablashtirishi mumkin.

Kotlin

Qo‘llanish sohalari. Kotlin — ixcham kod hajmiga ega dasturlash tili. Asosan Android uchun server ishlanmalar va mobil ilovalar ishlab chiqishda qo‘llanadi. Kotlin yordamida Pinterest, Coursera, Evernote yaratilgan.

Tilning ommabopligi. TIOBE reytingi ma’lumotlariga ko‘ra eng ommabop 20 ta dasturlash tili sirasiga kiradi.

Tilning afzallik va kamchiliklari. Kotlinning ustun tomonlari haqida gapiradigan bo‘lsak, u Java bilan to‘liq moslashadi. Uning manba kodi soddaligi va o‘qish qulayligi bilan ajralib turadi. Kamchiliklari esa kompilyatsiya tezligining pastligi va o‘rnatilgan kutubxonalarning kamligidir.

Dasturlash tillarini bilmasdan turib dasturchi bo‘lish mumkinmi?

Yo‘q. Agar siz birorta ham dasturlash tilini bilmasangiz, o‘z g‘oya va ko‘rsatmalaringizni kompyuterga yetkazib bera olmaysiz. Ta’mirlash bilan bog‘liq o‘xshashlikni esga olaylik: asboblarsiz xonadonni ta’mirlab bo‘lmaydi. Xuddi shunday, dasturchilar ham dasturlash tilisiz dastur yarata olmaydi.

Yuqori malakali mutaxassislar shunchaki turli tillarni yaxshi bilish bilan cheklanib qolmaydi. Ular doimiy ravishda o‘z malakalarini oshirib, dasturlash ko‘nikmalarini takomillashtirib boradi. Chunki dasturchilar uchun faqat kod yozishning o‘zi kifoya qilmaydi. Ular uchun eng muhimi bu – dasturlash vositalari yordamida foydalanuvchilarning muammolarini tezda va samarali hal qilishdir.

Dasturlashni boshlash uchun qaysi tilni tanlagan maʼqul?

Yangi boshlayotgan mutaxassis qaysi sohada va nimani dasturlashni istayotgani borasida bir qarorga kelishi kerak. Oʻzi uchun robotlarni dasturlash, ma’lumotlarni o‘rganish yoki ilova va o‘yinlar yaratish kabi qanday vazifalar bilan shugʻullanish qiziqarli ekanini tushunishi muhimdir. Ana shunda dasturlash uchun qaysi vositalar kerakligini aniqlash osonroq bo‘ladi.

Masalan, veb ilovalarni yaratish uchun eng maʼqul til JavaScript hisoblanadi. Agar o‘zingizni data saynsda sinab ko‘rmoqchi bo‘lsangiz, Python’ni tanlang. Bekend uchun yuqorida aytilgan JavaScript va Node.js, Java, PHP mos keladi.

Bir xil vazifalarga yechim boʻladigan tillardan qaysi birini tanlagan maʼqul? Bunda tanlov dasturchining oʻziga bogʻliq. Har bir kishi tilni o‘z didi, o‘rganish osonligi, qulayligi va til atrofidagi hamjamiyatning sifatiga e’tibor qaratgan holda tanlaydi.

Qaysi texnologiyalar to‘plamini (stekini) o‘rganish kerak?

O‘zingizga mos keladigan stekni tanlash uchun ish qidirish veb-saytlariga o‘tib, talab eng yuqori boʻlgan dasturlash yo‘nalishlarini qidiring. Dasturlash tillari reytingini o‘rganib, stekni bilimingiz va ish haqi borasidagi kutilmalaringizdan kelib chiqqan holda tanlang.

Dasturlash sohasida birinchi qadamni qo‘yishingizga yordam beradigan ko‘plab bepul materiallar mavjud. Yangi boshlayotganlar uchun foydali bo‘ladigan bir nechta manbalar:

  • GitHub — dasturchilar o‘z loyihalarining kodlarini joylashtirаdigan platforma. Undagi loyihalarning manba kodlarini o‘rganib, tajriba orttirishingiz mumkin.

  • Stack Overflow — oʻzingizni qiziqtirgan savollarni berib, ularga javoblar olishingiz mumkin bo‘lgan dasturchilar hamjamiyati.

  • Code Basics — dasturlash tillari asoslari bo‘yicha bepul kurslar.

Dasturlashni o‘rganishning eng oson yo‘li — ko‘proq mashq qilish va kod yozish. Oddiy veb-sayt, Telegram bot yoki buyruq satri uchun dastur yozishga urinib ko‘ring.


Manba: Что такое языки программирования и какие они бывают

Mohirdev Telegram

Telegram kanalimizga obuna bo’lishni unutmang

Obuna bo'lish
https://assets.mohirdev.uz/article-authors/667a84b7ffe2fe68561415aa/f711cbab-0393-47e6-b327-33116d689081.original.png

Hexlet

O'xshash maqolalar

Xoʻsh, Brick Game oʻyinlarida qanday protsessordan foydalanilgan?
Brick Game
Mikroelektronika

16-aprel, 2024

Xoʻsh, Brick Game oʻyinlarida qanday protsessordan foydalanilgan?

Bu kichik tadqiqotga meni yaqinda Xabrda nashr etilgan va muallif 90-yillardagi mashhur Tetrislarda 4 bitli Holtek HT1130 mikrokontrolleridan foydalanilgan boʻlishi mumkinligini taxmin qilgan maqola undadi. Aftidan, ROM (doimiy xotira) obrazi hanuz olinmagan, shunga mos ravishda bu oʻyinlar qatori uchun emulyator yozilmagan va bu meni juda hayron qoldirdi.

Maqolani o'qish
Taʼlimda skeffolding metodi

9-oktabr, 2024

Taʼlimda skeffolding metodi

Oxirgi oʻn yillikda taʼlim sohasida vujudga kelgan muhim konsepsiyalardan biri skeffolding metodi boʻldi. Skeffolding yangi tushunchalarni oʻquvchilar osonroq oʻzlashtirishi uchun qismlarga boʻlib oʻrgatishni anglatadi.

Maqolani o'qish
Loyihaning texnik topshirigʻi qanday yaratiladi?

11-oktabr, 2024

Loyihaning texnik topshirigʻi qanday yaratiladi?

Texnik topshiriq (техническое задание) nima uchun kerakligi, uni kim va qanday tuzishi haqida soʻz yuritamiz, misollar bilan boʻlishamiz.

Maqolani o'qish
Portfolio nima? Uni qanday tuzish kerak?

17-mart, 2025

Portfolio nima? Uni qanday tuzish kerak?

Portfolioga qoʻshadigan hech narsa boʻlmaganda nima qilsa boʻladi...

Maqolani o'qish
Qanday qilib yaxshi kod yozish mumkin? Yangi mutaxassislar uchun tez natija beradigan 10 ta qulay usul
Coding
maslahat

3-may, 2024

Qanday qilib yaxshi kod yozish mumkin? Yangi mutaxassislar uchun tez natija beradigan 10 ta qulay usul

Boshlangʻich darajadagi dasturchi uchun kod yozish koʻnikmasini rivojlantirish eng yuqori darajadagi maqsad boʻlsa kerak. Lekin ishni nimadan boshlagan yaxshi? Hozirgi paytdagi bunday katta axborot oqimi bilan qanday texnikalarni oʻrganish afzalligi va ulardan qaysi biri chindan yaxshi kod yozishingizga yordam berishini bilish ham qiyin.

Maqolani o'qish