🤔 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 scope
end scope
-- 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. Sessiz Yanlış — Yazılımın En Tehlikeli Hali
Yazılımın en tehlikeli hali çöktüğü hal değildir. Yanlış cevabı sessizce
verdiği haldir: milyar dolarlık hata (null), yutulmuş exception'lar, exit 0
dönen bozuk pipeline'lar, -O2'nin sildiği benchmark döngüleri.
MELP'in cevabı derleyicinin tamamına uygulanan bir kuraldır: runtime'a tahmin bırakılmaz. Başka bir dilin makul bir yorum seçip devam edeceği yerde MELP açık bir hata koduyla durur. Ondalık sayıyı import'suz kullanmak sessiz bir yanlış okuma değil, derleme hatasıdır. Eksik bir implementasyon exit 0 dönmek yerine gürültüyle patlamak zorundadır.
Bu disiplin kullanıcı koduna olduğu kadar kendimize de uygulanır: kanıtsız yeşil, kırmızıdan tehlikeli sayılır.
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 | ✅ | ✅ | ✅ | ✅ |
| Veri yarışı | ✅ yapısal olarak imkânsız | ✅ borrow checker | ❌ | ❌ |
| Debug bloğu (geleceğe mektup) | ✅ | ❌ | ❌ | ❌ |
| Freeze/karantina | 🔬 scope dondurma* | ❌ | ❌ | ❌ |
| OOP'suz | ✅ | Traits | Interface | ❌ |
| Öğrenme eğrisi | Düşük | Yüksek | Orta | Orta |
| Tedarik zinciri — paket ekosistemi | ✅ hiç yok | cargo | modules | — |
| Tedarik zinciri — build zinciri (xz sınıfı) | ❌ cevabımız yok | ❌ | ❌ | ❌ |
| Araç zinciri olgunluğu | ❌ genç | ✅ | ✅ | 🔬 |
Son iki satır kaybettiğimiz satırlardır ve tabloda kalırlar. Yalnız kazandıklarını sıralayan bir karşılaştırma, karşılaştırma değil reklamdır.
* 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. 🚀