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.

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.