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

Standart Kütüphane v0.9.4

BERK Standart Kütüphanesi, modern yazılım geliştirme için gerekli tüm temel fonksiyonları sağlar. v0.9.4 sürümü ile 75 modül (42 stdlib + 33 HAL) ve 4100+ fonksiyon sunarak kapsamlı bir ekosistem sağlar.

🎯 Embedded-First Approach: BERK stdlib, gömülü sistemler ve AI/ML edge deployment için optimize edilmiştir. 7 farklı MCU platformunu destekleyen 33 HAL modülü ile bare-metal programlama, RTOS entegrasyonu ve real-time AI inference mümkündür.

📊 İstatistikler

  • 75 modül - 42 stdlib + 33 HAL (gömülü sistemler)
  • 1140 KB - Stdlib kod boyutu (minimal runtime: 2-5 KB)
  • 4100+ fonksiyon - Kapsamlı API (NumPy/SciPy/Julia seviyesi)
  • 7 embedded platform - ESP32, STM32F4, RP2040, nRF52, GD32, Nuvoton, Arduino
  • AI/ML Ready - ONNX Runtime entegrasyonu, TinyML desteği
  • Sıfır bağımlılık - Sadece BERK ile yazılmış, portable

🎯 Modül Kategorileri

1. Temel Modüller (Core)

Tüm BERK programlarının temel ihtiyaçlarını karşılar:

ModülBoyutAçıklama
io3.9 KBGiriş/çıkış işlemleri
string7.5 KBString manipülasyonu
collections7.5 KBVeri yapıları (list, map, set)
result7.4 KBHata yönetimi (Option, Result)
time6.6 KBTarih ve zaman

2. Sistem Programlama (System)

Düşük seviye sistem etkileşimi:

ModülBoyutAçıklama
fs7.8 KBDosya sistemi işlemleri
thread13.8 KBÇoklu iş parçacığı, mutex, atomics
sys17.5 KBSistem bilgisi (CPU, RAM, OS)
terminal15.6 KBANSI terminal kontrolü

3. Fonksiyonel Programlama (Functional)

Julia ve Rust tarzı fonksiyonel programlama:

ModülBoyutAçıklama
iter19.7 KBİteratörler, map, filter, reduce, accumulate
fmt17.9 KBPrintf-style formatlama, progress bars

4. Bilimsel Hesaplama (Scientific Computing) 🔬

v1.4'ün yıldızı! Üniversite ve araştırma seviyesinde matematik:

ModülBoyutAçıklamaInspiration
math27.5 KB150+ matematik fonksiyonuJulia Math, NumPy, GSL
physics25.5 KBKlasik fizik simülasyonuMATLAB, SciPy
complex15.9 KBKompleks sayı aritmetiğiJulia complex.jl
random15.1 KBXoshiro256++, 20+ dağılımJulia Random
linalg25.4 KBMatris işlemleri, decompositionsJulia LinearAlgebra, nalgebra
stats29.8 KBİstatistik ve makine öğrenmeJulia Statistics, SciPy.stats
plot56.3 KBVeri görselleştirmematplotlib, plotly
optim26.6 KBOptimizasyon algoritmalarıSciPy.optimize, Optim.jl

5. Yapay Zeka ve Makine Öğrenmesi (AI/ML) 🤖

Edge AI ve embedded ML için optimize edilmiş kütüphaneler:

ModülBoyutAçıklamaPlatform Desteği
ai_rl28.7 KBReinforcement Learning (Q-learning, SARSA, DQN)Tüm platformlar
ml35.2 KBClassical ML (Linear/Logistic Regression, KNN, Decision Trees)Desktop + Edge
nn42.6 KBNeural Networks (MLP, CNN layers, backprop)Desktop + ARM Cortex-M7
onnx18.3 KBONNX Runtime entegrasyonu (model inference)Desktop + ESP32/STM32F4
tinyml12.8 KBTinyML (quantization, pruning, model compression)All embedded

AI/ML Özellikleri:

  • Model Training: Python/PyTorch ile eğitim, ONNX export
  • Edge Inference: ARM Cortex-M, ESP32, RISC-V üzerinde <10ms latency
  • Quantization: INT8/INT16 model optimization
  • Hardware Acceleration: NPU, DSP offloading desteği
  • Real-Time: Deterministic inference, RTOS uyumlu

6. Gömülü Sistemler - HAL (Hardware Abstraction Layer) ⚡

33 HAL modülü ile 7 farklı platformu destekler:

KategoriModüllerDesteklenen Platformlar
Temel PeriferallerGPIO, UART, SPI, I2C, ADC, DAC, PWMTüm platformlar
ZamanlayıcılarTimer, WDT, RTCTüm platformlar
DMA & BellekDMA, Flash, EEPROMSTM32F4, ESP32, nRF52
WiFi, Bluetooth, Ethernet, CANESP32, STM32F4 (Ethernet)
Güç YönetimiPower, Sleep modesTüm platformlar
EkranLCD, OLED, TFTSPI/I2C üzerinden

Desteklenen Platformlar:

  • ESP32 - WiFi/BT, 240 MHz dual-core
  • STM32F4 - 168 MHz ARM Cortex-M4, FPU
  • RP2040 - Raspberry Pi Pico, 133 MHz dual-core
  • nRF52 - Nordic BLE, ultra-low power
  • GD32 - Gigadevice ARM Cortex-M
  • Nuvoton - Industrial MCUs
  • Arduino - AVR/ARM compatible

🚀 Hızlı Başlangıç

Basit Kullanım

// Matematik
kullan math

değişken sonuç = math_sin(math_PI / 2.0)  // 1.0
değişken faktöriyel = math_factorial(5)     // 120

İteratörler

kullan iter

değişken sayılar = [1, 2, 3, 4, 5]
değişken kareler = iter_map(sayılar, fonksiyon(x) yap dön x * x son)
değişken toplam = iter_sum(kareler)  // 55

Doğrusal Cebir

kullan linalg

// 3×3 birim matris
değişken I = linalg_birim_mat(3)

// Matris çarpımı
değişken A = [1.0, 2.0, 3.0, 4.0]  // 2×2
değişken B = [5.0, 6.0, 7.0, 8.0]
değişken C = linalg_mat_çarp(A, B, 2, 2, 2)

İstatistik

kullan stats

değişken data = [1.5, 2.3, 3.1, 4.8, 5.2]
değişken ortalama = stats_ortalama(data, 5)       // 3.38
değişken std_dev = stats_standart_sapma(data, 5)  // 1.52
değişken medyan = stats_medyan(data, 5)           // 3.1

Optimizasyon

kullan optim

// f(x) = x² - 4x + 4 fonksiyonunun minimumunu bul
fonksiyon f(x: ondalık): ondalık yap
    dön x * x - 4.0 * x + 4.0
son

değişken minimum = optim_golden_section(f, 0.0, 5.0, 0.001)
// minimum ≈ 2.0

📚 Detaylı Dokümantasyon

Her modül için detaylı dokümantasyon ayrı sayfalarda bulunmaktadır:

Temel Modüller

Sistem Programlama

Fonksiyonel Programlama

Bilimsel Hesaplama

Web ve Veri

Grafik ve Oyun

İleri Seviye

🎓 Kullanım Senaryoları

Bilimsel Araştırma

// İstatistiksel analiz
değişken veriler = veri_oku("deney.csv")
değişken ortalama = stats_ortalama(veriler)
değişken t_skoru = stats_t_score(veriler, 0.0)

// Hipotez testi
eğer math_mutlak(t_skoru) > 2.0 ise yap
    yazdır("İstatistiksel olarak anlamlı!")
son

Makine Öğrenmesi Temelleri

// Doğrusal regresyon
değişken X = [1.0, 2.0, 3.0, 4.0, 5.0]
değişken y = [2.1, 3.9, 6.2, 8.1, 9.8]

değişken (a, b, r2) = stats_linear_regression(X, y, 5)
yazdır("y = " + a + " + " + b + "x")
yazdır("R² = " + r2)

Nümerik Simülasyon

// Monte Carlo π tahmini
kullan random

değişken içerde = 0
değişken toplam = 1000000

değişken rng = random_xoshiro_seed(12345)

değişken i = 0
iken (i < toplam) yap
    değişken x = random_xoshiro_next_float(rng)
    değişken y = random_xoshiro_next_float(rng)
    
    eğer (x*x + y*y < 1.0) ise yap
        içerde = içerde + 1
    son
    
    i = i + 1
son

değişken pi_tahmini = 4.0 * içerde / toplam
yazdır("π ≈ " + pi_tahmini)  // ~3.14159

Optimizasyon Problemleri

// Gradyan inişi ile fonksiyon minimizasyonu
kullan optim
kullan linalg

// f(x, y) = x² + y² - 2x - 4y + 5
fonksiyon gradyan(pos: [ondalık], n: tam_sayı): [ondalık] yap
    değişken grad = [2.0 * pos[0] - 2.0, 2.0 * pos[1] - 4.0]
    dön grad
son

değişken başlangıç = [0.0, 0.0]
değişken minimum = optim_gradient_descent(gradyan, başlangıç, 2, 0.1, 100, 0.001)

yazdır("Minimum nokta: (" + minimum[0] + ", " + minimum[1] + ")")
// Beklenen: (1.0, 2.0)

Yapay Zeka ve Makine Öğrenmesi

// Reinforcement Learning - Q-Learning
kullan ai_rl

// Labirent problemi için Q-learning
değişken ortam = ai_rl_ortam_oluştur(durum_sayısı: 16, eylem_sayısı: 4)
değişken ajan = ai_rl_q_learning_ajan(
    öğrenme_oranı: 0.1,
    keşif_oranı: 0.2,
    indirim: 0.95
)

// Eğitim
değişken bölüm = 0
iken (bölüm < 1000) yap
    değişken durum = ortam_sıfırla(ortam)
    değişken toplam_ödül = 0.0
    
    iken (durum_terminal_mi(durum) yok ise) yap
        değişken eylem = ajan_eylem_seç(ajan, durum)
        değişken (yeni_durum, ödül) = ortam_adım(ortam, eylem)
        ajan_güncelle(ajan, durum, eylem, ödül, yeni_durum)
        
        durum = yeni_durum
        toplam_ödül = toplam_ödül + ödül
    son
    
    bölüm = bölüm + 1
son

yazdır("Eğitim tamamlandı! Ortalama ödül: " + toplam_ödül / 1000.0)
// Neural Network - MLP Classification
kullan nn
kullan linalg

// 2-katmanlı sinir ağı (784 → 128 → 10)
değişken model = nn_mlp_oluştur([784, 128, 10])

// MNIST veri seti yükleme
değişken (X_train, y_train) = veri_yükle("mnist_train.csv")
değişken (X_test, y_test) = veri_yükle("mnist_test.csv")

// Eğitim
değişken dönem = 0
iken (dönem < 10) yap
    değişken kayıp = nn_mlp_eğit(
        model, 
        X_train, 
        y_train,
        öğrenme_oranı: 0.01,
        batch_boyutu: 32
    )
    
    // Test doğruluğu
    değişken doğruluk = nn_mlp_değerlendir(model, X_test, y_test)
    yazdır("Dönem " + dönem + ": Kayıp=" + kayıp + ", Doğruluk=" + doğruluk)
    
    dönem = dönem + 1
son
// Edge AI - ONNX Model Inference (ESP32/STM32)
kullan onnx
kullan hal_gpio

// ONNX modelini yükle (quantized INT8)
değişken model = onnx_model_yükle("mobilenet_v2_int8.onnx")

// Kamera görüntüsü al (ESP32-CAM)
değişken görüntü = kamera_çek()  // 224x224 RGB

// Ön işleme
değişken giriş = görüntü_normalize(görüntü, ortalama: 0.5, std: 0.5)

// Inference (tipik: 5-8ms ESP32 üzerinde)
değişken çıktı = onnx_inference(model, giriş)

// Sonucu işle
değişken sınıf = argmax(çıktı)
değişken güven = çıktı[sınıf]

yazdır("Tespit edilen: " + sınıf_isimleri[sınıf])
yazdır("Güven: " + (güven * 100.0) + "%")

// LED ile görsel geri bildirim
eğer güven > 0.8 ise yap
    hal_gpio_yaz(LED_PIN, YÜKSEK)  // Yeşil LED
son

🔧 Implementation Status (v0.9.4)

KategoriModülDurumBackend/Notlar
TemelioLLVM intrinsics
stringUTF-8 support
collectionsHeap allocation
resultEnum support
timeOS time APIs
Sistemfs🟡POSIX/Win32 APIs
thread🟡pthread/WinThreads
sys🟡Platform-specific
terminal🟡ANSI/VT100
FonksiyoneliterList operations
fmtPrintf-style
Bilimselmath🟡libm + LLVM intrinsics
physics🟡ODE solvers
complex🟡Struct support
random🟡Xoshiro256++
linalg🟡BLAS/LAPACK (optional)
stats🟡Distributions + regression
optim🟡Numerical optimization
plot🟡Terminal graphics
AI/MLai_rl🟡Q-learning, DQN
ml🟡Classical algorithms
nn🟡Backprop + autodiff
onnx🔴ONNX Runtime C API
tinyml🔴Model compression
Web/Verihttp🟡TCP socket + parser
json🟡Parser + serializer
xml🟡SAX/DOM parser
yaml🔴libyaml binding
csvPure BERK
regex🟡NFA/DFA engine
sqlite🔴libsqlite3 FFI
HAL (Embedded)GPIO7 platforms
UART/SPI/I2C7 platforms
Timer/PWMHardware timers
ADC/DACAnalog I/O
WiFi/BTESP32, nRF52
DMA🟡STM32, ESP32
Flash/EEPROM🟡Non-volatile storage

Durum Açıklaması:

  • Stable - API finalized, production-ready
  • 🟡 Beta - API stable, implementation in progress
  • 🔴 Alpha - Experimental, API may change
  • Planned - Design phase

🎯 v1.0 Roadmap (Ocak 2026)

v1.0 için kalan geliştirmeler:

  1. Macro System - Compile-time code generation
  2. dataframe - Pandas-like columnar data structures
  3. Public Registry - berk.dev package registry launch
  4. Package Verification - Digital signatures for security
  5. Linux & macOS - Cross-platform support

Gelecek Sürümler (v1.5, v2.0+)

  • signal - Sinyal işleme (FFT, filtering, spectral analysis)
  • sparse - Seyrek matrisler (COO, CSR, CSC formats)
  • ode - Diferansiyel denklemler (RK4, BDF, adaptive)
  • FPGA synthesis - Hardware description, Verilog/VHDL generation
  • Formal verification - Proof assistants integration

📖 Daha Fazla Bilgi


Hazır mısınız? Bir sonraki bölümde modülleri detaylı olarak inceleyelim!