Открыт для новых проектов

Alqor документация

Официальная документация — от нуля до первой веб- и десктоп-программы.

1Что такое Alqor?

Alqor — язык программирования, полностью написанный на азербайджанском. Ключевые слова, сообщения об ошибках и документация — на родном языке.

В коде ниже нет ни одного английского слова — əgər вместо if, yaz вместо print. И буквы ə, ı, ş работают полностью.

salam.alq alqor
yaz("Adınızı daxil edin:")
dəyişən ad = oxu()

yaz("Yaşınızı daxil edin:")
dəyişən yaş = oxuTam()

əgər yaş >= 18 onda
    yaz("{ad}, siz yetkinsiniz.")
yoxsa
    yaz("{ad}, siz hələ yetkin deyilsiniz.")
son

На Alqor можно писать консольные программы, сайты и API, десктоп-приложения и библиотеки — всё на одном языке, одном синтаксисе.

Скачайте Alqor с vuqar.pro/hub (Windows, Linux, macOS) или начните изучать язык по этому руководству.

2Первая программа

Создайте файл с именем salam.alq и напишите в нём:

salam.alq alqor
yaz("Salam, dünya!")

Затем запустите:

terminal bash
alqor işlət salam.alq
nəticə output
Salam, dünya!

Чтобы попробовать без создания файла, есть интерактивный режим (REPL):

terminal bash
alqor söhbət
Азербайджанские буквы: в Alqor Studio просто печатайте ASCII — набираете eger, получается əgər. Или клавиши ;e → ə, ;s → ş.

3Переменные и типы

tiplər.alq alqor
dəyişən ad = "Aysel"          // mətn
dəyişən yaş = 24              // tam ədəd
dəyişən boy = 1.68            // onluq ədəd
dəyişən tələbədir = doğru     // məntiqi
dəyişən heçnə = boş           // dəyər yoxdur

sabit Pİ = 3.14159            // dəyişməz

Если хотите указать тип явно:

tiplər.alq alqor
dəyişən say: tam = 0
dəyişən qiymət: onluq = 9.99
dəyişən adlar: siyahı[mətn] = []
ТипПример
tam42, -7, 1000000
onluq3.14, -0.5
mətn"Salam"
məntiqdoğru, yanlış
siyahı[T][1, 2, 3]
lüğət[A,D]{"ad": "Aysel"}

4Условия и выбор

sert.alq alqor
əgər yaş >= 18 onda
    yaz("Yetkin")
yoxsa əgər yaş >= 13 onda
    yaz("Yeniyetmə")
yoxsa
    yaz("Uşaq")
son

Для многих вариантов — seç (выбор):

sec.alq alqor
seç gün
    hal "B.e", "Ç.a" → yaz("İş günü")
    hal "Ş", "B" → yaz("İstirahət")
    hal 1..5 → yaz("Rəqəm")
    digər hallarda → yaz("Naməlum")
son

5Циклы

dovr.alq alqor
// 1-dən 5-ə qədər
hər i üçün 1..5 içində
    yaz("Rəqəm: {i}")
son

// Siyahı üzərində
dəyişən meyvələr = ["alma", "armud", "üzüm"]
hər m üçün meyvələr içində
    yaz(m)
son

// Şərtli dövr
dəyişən i = 0
nə qədər ki i < 5
    yaz(i)
    i += 1
son

// Sayla təkrar
təkrarla 3 dəfə
    yaz("Salam")
son

6Функции

funksiya.alq alqor
funksiya salamla(ad: mətn)
    yaz("Salam, {ad}!")
son

funksiya topla(a: tam, b: tam) -> tam
    qaytar a + b
son

salamla("Aysel")
yaz(topla(3, 4))              // 7

// Qısa (lambda) funksiya
dəyişən ikiqat = (x) => x * 2
yaz(ikiqat(21))              // 42

7Списки и словари

siyahı.alq alqor
dəyişən s = [3, 1, 4, 1, 5]

s.əlavə(9)                    // sona əlavə
yaz(s[0])                     // 3
yaz(uzunluq(s))               // 6
yaz(s.sıralanmış())           // [1, 1, 3, 4, 5, 9]
yaz(s.cəm())                  // 23
yaz(s.filtr((x) => x > 3))    // [4, 5, 9]
yaz(s.çevir((x) => x * 10))   // [30, 10, 40, 10, 50]

Словарь для пар ключ–значение:

lüğət.alq alqor
dəyişən yaşlar = {"Aysel": 24, "Rəşad": 31}

yaz(yaşlar["Aysel"])          // 24
yaşlar["Nigar"] = 28

hər ad, yaş üçün yaşlar içində
    yaz("{ad}: {yaş}")
son

8Классы

sinif.alq alqor
sinif İnsan
    xassə ad: mətn
    xassə yaş: tam

    qurucu(ad: mətn, yaş: tam)
        özü.ad = ad
        özü.yaş = yaş
    son

    metod təqdim()
        yaz("Mən {özü.ad}, {özü.yaş} yaşım var.")
    son
son

dəyişən a = yeni İnsan("Aysel", 24)
a.təqdim()

Наследование и переопределение метода:

teleb.alq alqor
sinif Tələbə miras İnsan
    xassə universitet: mətn

    qurucu(ad: mətn, yaş: tam, universitet: mətn)
        üst(ad, yaş)
        özü.universitet = universitet
    son

    əvəz et metod təqdim()
        yaz("Mən {özü.ad}, {özü.universitet} tələbəsiyəm.")
    son
son

9Обработка ошибок

xeta.alq alqor
cəhd et
    dəyişən n = tamƏt(oxu("Ədəd: "))
    yaz("İki qatı: {n * 2}")
tut (x: ÇevrilməXətası)
    yaz("Bu ədəd deyil!")
son

Своя ошибка и проверка условия:

bol.alq alqor
funksiya böl(a: onluq, b: onluq) -> onluq
    təmin b != 0 yoxsa
        at BölməXətası("Sıfıra bölmək olmaz")
    son
    qaytar a / b
son

10Веб-сервер

Веб-сервер, работающий всего в пять строк:

server.alq alqor
gətir veb

dəyişən s = yeni veb.Server()
s.al("/", (sorğu) => veb.mətn("Salam, dünya!"))
s.dinlə(8080)

Параметры маршрута и ответ JSON:

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

s.al("/api/vaxt", (q) => veb.json({
    "saat": vaxt.indi().saat,
    "dəqiqə": vaxt.indi().dəqiqə
}))

11Десктоп-приложение

pencere.alq alqor
gətir pəncərə

dəyişən p = yeni pəncərə.Pəncərə("Mənim Proqramım", 800, 600)
p.məzmun(<h1>Salam, dünya!</h1>)
p.göstər()
pəncərə.işlət()

Компонент с состоянием — тот же код работает и в вебе:

saygac.alq alqor
gətir vidjet

komponent Sayğac
    vəziyyət say: tam = 0
    göstər()
        qaytar <button klik={() => özü.say += 1}>
            Basıldı: {özü.say}</button>
    son
son

12Инструменты и команды

КомандаЧто делает
alqor işlət [fayl]Запускает программу
alqor söhbətИнтерактивный режим (REPL)
alqor yeni <ad>Создаёт новый проект
alqor sınaЗапускает тесты
alqor yoxlaНаходит ошибки (без запуска)
alqor format .Форматирует код
alqor studioAlqor Studio IDE
alqor köməkВсе команды

Шаблоны новых проектов:

terminal bash
alqor yeni mənim-saytım --şablon veb
alqor yeni mənim-tətbiqim --şablon desktop
alqor yeni mənim-kitabxanam --şablon kitabxana