Açıq mənbə · Versiya 2.5.1

Azərbaycan dilində düşünən proqramlaşdırma dili

Açar sözlər, xəta mesajları, sənədlər və IDE — hamısı ana dilimizdə. Bir dildə konsol proqramı, veb sayt, desktop tətbiq və brauzer kodu yazın.

əgərhər … üçünfunksiyasinifcəhd etgözlə
palindrom.alq alqor
// Mətnin palindrom olub-olmadığını yoxlayır
funksiya palindromdur(söz: mətn) -> məntiq
    dəyişən t = söz.kiçiyə().əvəz(" ", "")
    qaytar t == t.tərs()
son

hər söz üçün ["Ana", "Alqor", "212"] içində
    əgər palindromdur(söz) onda
        yaz("{söz} → palindromdur ✓")
    yoxsa
        yaz("{söz} → palindrom deyil ✗")
    son
son
nəticə output
Ana → palindromdur ✓
Alqor → palindrom deyil ✗
212 → palindromdur ✓
Yeni buraxılış · v2.5.1

Alqor 2.5: dilə xas sintaksis

Doqquz yeni konstruksiya — Azərbaycan dilinin hal şəkilçilərindən ölçü vahidlərinə qədər. Hamısı Python, Rust və JavaScript hədəflərində eyni nəticəni verir və sınaqlarla yoxlanır.

Terminologiya Azərbaycan dilinə uyğunlaşdırıldı: sazlayıcı (alqor sazla), kod yoxlayıcısı, bayt kodu. VS Code genişlənməsi yeni sözləri rəngləyir.

yeni-sintaksis.alq alqor
// 2.5: dilə xas sintaksis
makro kvadrat(x) = x * x
yaz(kvadrat!(4))                         // 16

yaz(5 km + 300 m)                        // 5.3 km
yaz((90 km/saat).çevir("m/san"))         // 25.0 m/san

dəyişən adlar = ["Ali"]
"Vüqar" adlar-a əlavə et                 // adlar.əlavə("Vüqar")

hər i üçün 3-dən 1-ə qədər
    yaz("geri sayım:", i)
son

yaz(sorğu hər x üçün [5, 2, 8, 1] içində
    harada x > 1
    sırala x azalan
    seç x * 10
son)                                     // [80, 50, 20]

funksiya böl(a, b)
    tələb b != 0, "bölən sıfır ola bilməz"
    qaytar a / b
son

sınaq "bölmə"
    gözlənilir böl(9, 3) == 3
son
Niyə Alqor?

Oyuncaq deyil — müasir bir dil

Dünyada milyonlarla insan proqramlaşdırmaya ingilis dilini öyrənməklə başlayır. Alqor bu maneəni aradan qaldırır: alqoritmi öz dilində düşün, yaz və kompüter sənə öz dilində cavab versin.

Müasir dil

Siniflər, miras, interfeyslər, cəbri sadalamalar, naxış uyğunlaşdırma, qapanmalar, generatorlar, asinxron/gözlə, tədrici tiplər.

Azərbaycan dili, ciddi şəkildə

ı/İ qaydası ilə böyük-kiçik hərf, əlifba sırası ilə sıralama (ə e-dən sonra gəlir), 5.yazıyla() → beş.

Anlaşılan xətalar

Hər xəta Azərbaycanca, kodu ilə, səhvin yeri göstərilir və düzəliş təklif olunur.

Hər klaviaturada

«eger» yazsanız «əgər» kimi qəbul olunur — Azərbaycan klaviaturası olmayan kompüterdə də işləyir.

Bir dil — dörd hədəf

Konsol, veb server, desktop pəncərə və JavaScript (Node.js / brauzer) — eyni koddan.

Tam alət dəsti

IDE, paket meneceri, formatlayıcı, kod yoxlayıcısı, sınaq işlədicisi, sənəd yaradıcısı, LSP və sazlayıcı.

Bir dil — dörd hədəf

Konsol, veb, desktop və brauzer

Eyni dildə yazdığınız kod dörd fərqli yerdə işləyir — Python icraçısı, veb server, yerli pəncərə və JavaScript.

01

Veb server

Marşrutlar, JSON API, HTML şablonları — beş sətirdən başlayır.

veb.Server()s.al("/yol")veb.json()s.dinlə(8080)
server.alq alqor
gətir veb

dəyişən s = yeni veb.Server()

s.al("/", (q) => veb.mətn("Alqor serveri işləyir"))

s.al("/salam/:ad", (q) =>
    veb.html(<h1>Salam, {q.parametr("ad")}!</h1>))

s.al("/cəm/:a/:b", (q) => veb.json({
    "nəticə": tamƏt(q.parametr("a")) + tamƏt(q.parametr("b"))
}))

s.dinlə(8080)
02

Desktop tətbiq

118 hazır vidjet; eyni komponent vebdə də işləyir.

komponentvəziyyətvidjet.sütun()göstər()
salam.alq alqor
gətir pəncərə
gətir vidjet

komponent Salamlama
    vəziyyət ad: mətn = ""

    göstər()
        qaytar vidjet.sütun(boşluq: 12, məzmun: [
            vidjet.başlıq(mətn: "Alqor ilə salam"),
            vidjet.sahə(etiket: "Adınız", dəyər: özü.ad,
                        yazıldı: (d) => özü.ad = d),
            vidjet.mətn(məzmun: əgər özü.ad == "" onda
                "Adınızı yazın…"
            yoxsa
                "Xoş gəldin, {özü.ad}!" son)
        ])
    son
son

dəyişən p = yeni pəncərə.Pəncərə("Salam", 360, 220)
p.məzmun(yeni Salamlama())
p.göstər()
pəncərə.işlət()
03

JavaScript-ə

Python olmadan Node.js-də və ya brauzerdə işlət.

alqor işlət --jsalqor qur --hədəf vebalqor yerləşdir
terminal bash
# Eyni koddan dörd hədəf — Python olmadan da:
alqor işlət --js proqram.alq        # Node.js-də dərhal işlət
alqor qur --hədəf veb proqram.alq   # → qurma/veb/index.html
alqor yerləşdir                     # → statik hostinq üçün qovluq
Xətalar sizinlə danışır

Hər xəta öz dilində, yerini göstərir, düzəliş təklif edir

121 xəta kodu, hər biri Azərbaycanca izah, mənbə parçası və düzəliş təklifi ilə. Hətta səhv yazılmış üzv adını da tutur və düzgününü təklif edir.

nümunə.alq alqor
dəyişən ədədlər = [5, 2, 8, 1]
yaz(ədədlər.sortla())
alqor xəta
✖ ALQ-T006  ÜzvXətası
   ┌─ nümunə.alq:2:14
   │
  2│ yaz(ədədlər.sortla())
   │             ───┬───
   │                └── `siyahı[tam]` tipində `sortla` üzvü yoxdur
   │
  = kömək: `sırala` demək istəyirdiniz?
  = siyahı metodları: sırala · sıralanmış · tərsinəÇevir
Rəqəmlərlə

Arxada dayanan iş

~66 000sətir etalon implementasiya
1 360+avtomatik sınaq
118hazır vidjet
40+standart modul
121anlaşılan xəta kodu
Alət dəsti

Dildən çox — tam ekosistem

IDE-dən paket deposuna qədər hər şey daxildir.

alqorİşlətmək, layihə yaratmaq, qurmaq, sınaq, sənəd, REPL
Alqor StudioIDE: redaktor, vizual dizayner, önbaxış, sazlama
alqorpm · alqorhubPaket meneceri və paket deposu serveri
alqorfmtKodu səliqəyə salır; ASCII açar sözləri düzəldir
alqorlint35 qaydalı statik təhlil, avtomatik düzəlişlər
alqorls · dapLSP və sazlayıcı — VS Code, Neovim, Helix
Açıq mənbə · MIT lisenziyası

Alqor açıq mənbəlidir — kod hamı üçündür

Dilin bütün mənbə kodu — kompilyator, Rust icraçısı, Alqor Studio və sənədlər — GitHub-da MIT lisenziyası ilə paylaşılır.

İstifadə edin, öyrənin, dəyişdirin və öz layihələrinizdə sərbəst yayın.

vugarfamiloglu/alqor
Lisenziya
MIT
Dillər
Python · Rust · JS
Son buraxılış
v2.5.1
Yüklə

Alqor-u kompüterinə qur

v2.5.1 hazırdır — Windows, Linux və macOS üçün. Platformanızı seçin və vuqar.pro/hub-dan yükləyin.

Quraşdırıcı Alqor Studio-nu, alqor əmrlərini daxili Python mühitini və sürətli Rust icraçısını özü ilə gətirir — əlavə heç nə qurmaq lazım deyil.

Necə başlamalı?

Quraşdırıcıları gözləmədən dili öyrənməyə başla — tam sənədləşmə saytda, Azərbaycan dilində.

Sənədləşməni aç

Alqor-u indi sınayın

Pulsuz yüklə və Azərbaycan dilində proqram yazmağa başla.