Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Sözdizimi ve Yapı

BERK programlama dilinin temel syntax kuralları ve kod yapısı.

Temel Yapı

Her BERK programı bir ana() (veya main()) fonksiyonundan başlar:

işlev ana() {
    yazdır("Merhaba Dünya!")
}

İngilizce syntax:

function main() {
    print("Hello World!")
}

İfade Sonlandırıcılar

BERK'te ifadeler noktalı virgül gerektirmez. Her satır bir ifade olarak değerlendirilir:

değişken x = 10
değişken y = 20
değişken toplam = x + y
yazdır(toplam)

Çok satırlı ifadelerde backslash kullanabilirsiniz:

değişken uzunMetin = "Bu çok uzun bir yazı \
                      birden fazla satıra yayılıyor"

Blok Yapıları

Bloklar süslü parantez ile tanımlanır:

işlev hesapla() {
    değişken a = 5
    değişken b = 3
    
    eğer a > b {
        yazdır("a büyük")
    } değilse {
        yazdır("b büyük veya eşit")
    }
}

İsimlendirme Kuralları

Değişkenler ve Fonksiyonlar

  • snake_case (önerilen): değişken kullanıcı_adı = "Ahmet"
  • camelCase (alternatif): değişken kullanıcıAdı = "Ahmet"

Sabitler

  • SCREAMING_SNAKE_CASE: sabit MAX_DEĞER = 100

Türler

  • PascalCase: tür KullanıcıBilgisi = struct { ... }
// İyi örnekler
değişken sayaç = 0
değişken toplam_fiyat = 99.99
sabit PI_DEĞERI = 3.14159

işlev hesapla_alan(yarıçap: Sayı) -> Sayı {
    geri dön PI_DEĞERI * yarıçap * yarıçap
}

// Kaçınılması gerekenler
değişken s = 0              // Çok kısa, anlaşılmaz
değişken ÖzelSayı123 = 5    // Karışık format

Girinti (Indentation)

BERK girinti konusunda esnek olmakla birlikte, 4 boşluk kullanımı önerilir:

işlev kontrol_et(x: Sayı) {
    eğer x > 0 {
        yazdır("Pozitif")
        eğer x > 100 {
            yazdır("Çok büyük!")
        }
    } değilse eğer x < 0 {
        yazdır("Negatif")
    } değilse {
        yazdır("Sıfır")
    }
}

Boşluklar (Whitespace)

Operatörler etrafında boşluk kullanımı okunabilirliği artırır:

// Tercih edilen
değişken sonuç = a + b * c

// Geçerli ama okunabilir değil
değişken sonuç=a+b*c

Satır Uzunluğu

80-100 karakter sınırı önerilir. Uzun satırları şöyle bölebilirsiniz:

değişken çokUzunDeğişken = birinciFonksiyon(parametere1, parametre2)
                            + ikinciFonksiyon(parametre3)
                            + üçüncüFonksiyon(parametre4)

İki Dilli Syntax

BERK'in en önemli özelliği iki dilli syntax desteğidir. Türkçe ve İngilizce anahtar kelimeleri karıştırabilirsiniz:

// Tamamen Türkçe
işlev hesapla(x: Sayı) -> Sayı {
    eğer x < 0 {
        hata dön "Negatif sayı!"
    }
    geri dön x * x
}

// Tamamen İngilizce
function calculate(x: Number) -> Number {
    if x < 0 {
        error return "Negative number!"
    }
    return x * x
}

// Karışık (geçerli ama önerilmez)
function hesapla(x: Sayı) -> Number {
    if x < 0 {
        hata dön "Negative!"
    }
    return x * x
}

Best Practice: Projenizde tek bir dil tercih edin (Türkçe VEYA İngilizce).

Modüller

Her dosya bir modül olarak değerlendirilir:

// matematik.berk
export işlev topla(a: Sayı, b: Sayı) -> Sayı {
    geri dön a + b
}

export sabit PI = 3.14159
// ana.berk
import matematik

işlev ana() {
    yazdır(matematik.topla(5, 3))
    yazdır(matematik.PI)
}

Örnek: Tam Program

// Fibonacci sayı dizisi hesaplama

import math

// Recursive versiyonu
işlev fib_recursive(n: Sayı) -> Sayı {
    eğer n <= 1 {
        geri dön n
    }
    geri dön fib_recursive(n - 1) + fib_recursive(n - 2)
}

// Iterative versiyonu (daha verimli)
işlev fib_iterative(n: Sayı) -> Sayı {
    eğer n <= 1 {
        geri dön n
    }
    
    değişken a = 0
    değişken b = 1
    
    döngü i 2'den n+1'e kadar {
        değişken temp = a + b
        a = b
        b = temp
    }
    
    geri dön b
}

işlev ana() {
    sabit N = 10
    
    yazdır("İlk ", N, " Fibonacci sayısı:")
    
    döngü i 0'dan N'ye kadar {
        yazdır("fib(", i, ") = ", fib_iterative(i))
    }
}

Stil Rehberi Özeti

ÖğeStilÖrnek
Değişkensnake_casekullanıcı_adı
Fonksiyonsnake_casehesapla_toplam()
SabitSCREAMING_SNAKE_CASEMAX_DEĞER
TürPascalCaseKullanıcıTipi
Girinti4 boşluk kod
Satır uzunluğu80-100 karakter-
Operatör boşluklarıEveta + b

Bir Sonraki