Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 1.27 KB

readme-old.md

File metadata and controls

56 lines (41 loc) · 1.27 KB

Osmon Tili

license release

Osmon bu registrlarga asoslangan virtual mashinalik va yengil dasturlash tili

Osmon boshqa o'zbek open source dasturchisi Sukhrob Khakimovning proyektlaridan ilhomlanadi.

Maqsad

  • O'zbekona sintaksis
  • Rust bilan integratsiya
  • O'rganish darajasini oshirish
  • Virtual Mashinani OOP ga moslash

Holis (istamaymiz)

  • Judayam haddan ortiq ko'p resurslar ko'paytirish
  • JIT kompilyatsiya
  • Baytkod fayllarni yaratish

Misol

funksiya faktorial(n) {
    agar n == 0 {
        qaytar 1;
    }
    qaytar faktorial(n - 1) * n;
}

klass Faktorial {
    funksiya yarat(v) {
        shu._v = v;
        qaytar shu;
    }

    funksiya qiymat() {
        agar shu._v == 0 {
            qaytar 1;
        }

        joy f = Faktorial(shu._v - 1);
        joy v = shu._v;


        qaytar f.qiymat() * v;
    }
}

funksiya asosiy() {
    yoz("Klasslik faktorial(5) = ",Faktorial(5).qiymat());
    yoz("Rekursiv faktorial(5) = ",faktorial(5));
}