🤔 Neden MELP?
Her dil bir sorunu çözer. MELP'in çözdüğü sorun: karmaşıklık olmadan güvenlik.
1. Scope Modeli — GC Yok, Borrow Checker Yok, Memory Safe
MELP'te her değişken bir scope içinde yaşar. Scope kapandığında bellek otomatik temizlenir.
scope hesap
numeric bakiye = 1000
scope cagir
numeric function para_cek(numeric m)
if m > bakiye then return 0 end if
bakiye = bakiye - m
return 1
end function
return para_cek(200)
end cagir
end hesap
-- bakiye burada otomatik temizlendi
Rust: borrow checker ile ödünç verme kuralları.
Go: GC ile bellek yönetimi, pause süreleri.
MELP: Scope = yaşam döngüsü. Ne GC, ne borrow checker.
2. Self-Hosting — Derleyici MELP'te Yazıldı
# MELP derleyicisi kendini derleyebilir:
melp_compiler < main.mlp > stage.ll
clang stage.ll -o new_compiler
./new_compiler < main.mlp > stage2.ll
diff stage.ll stage2.ll # → boş (self-hosting kanıtı!)
Bu, dilin olgunluğunun ve güvenilirliğinin kanıtıdır.
3. Çok Dilli Keyword — Kod Her Dilde Okunur
| TR | EN | RU | AR |
|---|---|---|---|
fonksiyon | function | функция | دالة |
eğer | if | если | اذا |
döngü | loop | цикл | حلقة |
Aynı kod, 6 dilde okunabilir. Ana dili İngilizce olmayan geliştiriciler için.
4. OOP'suz Nesne — Kalıtım Yok, Bileşim Var
struct Point
numeric x; numeric y
end struct
-- point.move(1, 2) → move_point(point, 1, 2)
-- MELP: bileşim > kalıtım
Sınıf, kalıtım, virtual method yok. Struct + fonksiyon. Daha basit, daha hızlı.
5. Debug Block — Tasarım Zamanı IDE İletişimi
debug
external ide
ide_inspect(members_count)
if members_count > 10000 then
ide_warning("Kritik seviye: " & str(members_count))
ide_highlight(1442)
end if
end debug
Release'de sıfır maliyetle strip edilir. Debug'da IDE ile konuşur.
6. Performans — C ile Aynı Ligde
MELP "C'den hızlı" iddiasında değildir. Hedefi sürprizsiz, C ligi performansı. MELP LLVM/clang ile derlenir; en adil kıyas, C'nin de aynı backend'le (clang -O2) derlenmesidir — tek değişken dil. Sayılar protokollüdür (5 tekrar, en iyi; Intel i7-10750H).
| Test | MELP | C (clang -O2) | Durum |
|---|---|---|---|
| fib(40) | 234ms | 232ms | Pratikte özdeş — aynı LLVM (gcc-C: 171ms) |
| string concat 100K | 9ms | ~1ms | O(n) parite; C sabit-katsayıda önde |
fib(40): MELP Rust'tan (277ms) ve Go'dan (429ms) da hızlıdır. Ama manşet "C'yi geçtik" değildir — MELP, kendi backend'iyle derlenen C ile aynı ligde, sürprizsiz.
Not: "loop 100M" gibi yan-etkisiz döngüler LLVM tarafından compile-time'da katlanır (induction variable elimination) — bu bir optimize-edilebilirlik göstergesidir, çalışma-zamanı hız ölçümü DEĞİLDİR; hız tablosuna dahil edilmez. MELP'in ürettiği IR'ın LLVM'in katlayabileceği kadar temiz olması olumlu bir işaret, ama "C'yi geçtik" anlamına gelmez.
MELP vs Diğer Diller
| Özellik | MELP | Rust | Go | Zig |
|---|---|---|---|---|
| Bellek modeli | Scope | Borrow checker | GC | Manuel |
| Self-hosting | ✅ | ✅ | ✅ | ✅ |
| Çok dilli | ✅ 6 dil | ❌ | ❌ | ❌ |
| Debug block | ✅ | ❌ | ❌ | ❌ |
| Freeze/karantina | 🔬 scope dondurma* | ❌ | ❌ | ❌ |
| OOP'suz | ✅ | Traits | Interface | ❌ |
| Öğrenme eğrisi | Düşük | Yüksek | Orta | Orta |
* Freeze bugün host API üzerinden çalışır (scope dondurma/çözme, seçici); dil sözdizimine tam entegrasyonu geliştirme aşamasındadır — bu yüzden 🔬 (kısmî) damgalıdır.
MELP — Karmaşıklık olmadan güvenlik. 🚀