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
| Öğe | Stil | Örnek |
|---|---|---|
| Değişken | snake_case | kullanıcı_adı |
| Fonksiyon | snake_case | hesapla_toplam() |
| Sabit | SCREAMING_SNAKE_CASE | MAX_DEĞER |
| Tür | PascalCase | KullanıcıTipi |
| Girinti | 4 boşluk | kod |
| Satır uzunluğu | 80-100 karakter | - |
| Operatör boşlukları | Evet | a + b |