Men O'zbek Dasturlash Tilini Yaratishni Boshladim: UzLang'ning Birinchi Qadami

O'zbekistonda yangi dasturlash tili - UzLang yaratilmoqda! Loyihaning maqsadi, birinchi ishchi prototipi va unga qanday hissa qo'shish mumkinligi haqida batafsil.

Iyul 3, 2025 - 11:01
 0  21
Men O'zbek Dasturlash Tilini Yaratishni Boshladim: UzLang'ning Birinchi Qadami

Har bir dasturchining hayotida "qaniydi shunday narsa bo'lsa" degan orzu paydo bo'ladi. Men uchun bu orzu doim til masalasiga borib taqalardi. Nega dasturlashni o'rganish uchun ingliz tilini bilish deyarli shart? Nega yoshlarimiz o'z ona tilida emas, begona tildagi if, else, for so'zlari bilan kod yozishni boshlashi kerak?

Bu savollar menga uzoq vaqt tinchlik bermadi. Bugun esa men bu savollarga javob izlashdan to'xtab, o'z yechimimni yaratishga qaror qildim. Men KnowHub.uz loyihasi doirasida yangi, katta missiyani boshladim: o'zbek sintaksisiga ega, Python kabi oson bo'lgan UzLang dasturlash tilini yaratish.

G'oyadan Prototipgacha

Bu g'oya bir necha kun ichida shunchaki xayoldan ishlaydigan kodga aylandi. Mening maqsadim – boshlanishiga "Hello, World!"dan ko'ra ko'prog'ini qila oladigan, oddiy mantiqiy amallarni bajara oladigan til yaratish edi.

UzLang Qanday Ishlaydi? (Oddiy Tilda)

Har qanday dasturlash tili matnni "tushunishi" uchun uni bir necha bosqichda tahlil qiladi. Men yaratgan birinchi prototip ham xuddi shunday ishlaydi:

  1. Lekser (Tokenizer): Bu matnni "so'z"larga ajratuvchi "tarjimon". U agar raqam > 3 degan gapni agar (kalit so'z), raqam (o'zgaruvchi), > (operator), 3 (son) kabi alohida bo'lakchalarga (tokenlarga) ajratadi.

  2. Parser: Bu "grammatika o'qituvchisi". U tokenlarni olib, ulardan mantiqiy gap tuzilishini (daraxtni) yaratadi. Ya'ni, agardan keyin shart kelishi kerakligini, shartdan keyin esa bajariladigan amal kelishini tushunadi.

  3. Interpretator: Bu "bajaruvchi". U parser tuzgan mantiqiy daraxtni "o'qib", uni amalda bajaradi. Agar shart to'g'ri bo'lsa, tegishli kodni ishga tushiradi.

Mana mening birinchi ishchi kodimdan namuna:

# Bu kod UzLang'dagi matnni tahlil qiladi
uz_code = '''
agar raqam > 3 bo‘lsa:
   chiqar "Bu katta son"
'''
# ... (tokenizer, parser, interpreter kodlari)
# Va natija: "Bu katta son"

Bu Faqat Boshlanishi!

Albatta, bu hali juda sodda prototip. Oldinda bizni katta rejalar kutib turibdi:

  • O'zgaruvchilar e'lon qilish (son = 10)

  • Sikllar (takror, uchun)

  • Funksiyalar (funktsiya salom_ber())

  • .uz kengaytmali fayllarni o'qiydigan mustaqil dastur yaratish.

Eng Muhimi: Bu Ochiq Loyiha!

Men bu yo'lni bir o'zim bosib o'tmoqchi emasman. UzLang – bu butun O'zbekiston dasturchilari hamjamiyatining loyihasi bo'lishini xohlayman.

Shu sababli, men loyihaning butun kodini GitHub'ga ochiq tarzda joylashtirdim. Har bir qiziquvchi bu jarayonni kuzatishi, o'z fikrini bildirishi va hatto o'z hissasini qo'shishi mumkin.

Loyihaning GitHub'dagi manzili: https://github.com/knowhub-dev/uzLang 

Keling, birgalikda o'zimizning, milliy dasturlash tilimizni yaratamiz! Bu yo'lda har bir fikr, har bir taklif va har bir kod qatori qadrlidir. Loyihaga qo'shiling, muhokamalarda qatnashing va bu tarixiy voqeaning bir qismiga aylaning.

SamDevX Assalomu alaykum, KnowHub.uz'ga xush kelibsiz! Mening ismim Samandar. Texnologiyalar – mening ishtiyoqim. Bolaligimdan kompyuterlarga, yoshligimdan kod yozishga qiziqib kelaman. Bu yillar davomida dasturlashni o'rganish jarayonida ko'p qiyinchiliklarga duch keldim: ma'lumotlar tarqoq, o'zbek tilidagi manbalar esa deyarli yo'q edi. KnowHub.uz aynan shu tajribadan kelib chiqib tug'ilgan g'oya. Maqsadim – o'zim o'rgangan bilim va tajribalarni siz bilan bo'lishish, dasturlash va texnologiyalar olamiga endi kirib kelayotganlarga yo'l ko'rsatish va bu sohadagi barcha qiziquvchilarni bir joyga to'plash. Bu saytda men siz bilan go'yoki bir piyola qahva ustida suhbatlashgandek, murakkab narsalarni oddiy tilda tushuntirishga harakat qilaman. Biz bu yerda: Dunyodagi eng qiziqarli texno-yangiliklarni muhokama qilamiz; Kod yozishni amaliy misollarda o'rganamiz; Open Source'ning sirli olamiga sho'ng'iymiz. Profil rasmimdagi logotip bu saytga bo'lgan jiddiy niyatim va uning ortidagi g'oyani ifodalaydi. Umid qilamanki, bu maskan siz uchun ham foydali va qiziqarli bo'ladi. Keling, birgalikda o'rganamiz va o'sishamiz! Savollaringiz bo'lsa, tortinmang! Men bilan bemalol bog'laning.