MELP Ne Yapabilir?
Dil tasarımından binary güvenliğine — temel özellikler.
🌍 1. Çok Dilli, Çok Sentaksli Yazım
MELP'te program mantığı dilden ve sözdizimi stilinden bağımsızdır. Aynı derleyici Türkçe,
İngilizce, Rusça veya Japonca kaynak dosyasını okuyabilir. Yeni bir dil eklemek için tek
yapılması gereken bir keywords.json dosyası yazmaktır —
derleyici kaynak koduna dokunulmaz.
Bunun yanı sıra MELP üç farklı sözdizimi stilini destekler:
function add(a; b)
return a + b
end function
function add(a; b) {
return a + b
}
function add(a; b):
return a + b
Kanonik kaynak: /ORTAK/dil/<dil_kodu>/keywords.json
function greet(name)
print("Hello, " + name)
end function
function main()
greet("World")
end function
fonksiyon selamla(isim)
yaz("Merhaba, " + isim)
fonksiyon sonu
fonksiyon giriş()
selamla("Dünya")
fonksiyon sonu
Tasarım İlkesi: Dil değişikliği algoritmanın kendisini değiştirmez.
Normalizer, kaynak dildeki anahtar kelimeleri tek biçimli iç temsile (pmlp)
çevirir ve derleyicinin geri kalanı yalnızca bu iç temsili görür.
🛡️ 2. Memory Safe — GC'siz, Annotation'sız
MELP, varsayılan olarak global durum oluşturmaya izin vermez. Bu tek kural sayesinde bellek sızıntısı derleyici düzeyinde imkânsız hale gelir — ne çalışma zamanı Garbage Collector ne de Rust'ın borrow checker'ı gibi manuel annotation sistemi gerekir.
| Dil | Hız | Memory Safety | Ekstra Yük |
|---|---|---|---|
| C / C++ | ✅ | ❌ Manuel | — |
| Java / Python | ❌ GC | ✅ | Garbage Collector |
| Rust | ✅ | ✅ | Borrow checker annotation |
| MELP | ✅ | ✅ | Hiçbiri — stateless-first |
Stateless-First: Varsayılan tercih saf ve kısa ömürlü işlemlerdir. Global durum gerekiyorsa bunun maliyeti ve etkisi açık ve bilinçli olmalıdır.
🔐 3. Yapısal Binary Güvenliği — EOK
Binary'e sahip olmak, mantığa sahip olmak anlamına gelmez.
Klasik derleyiciler kaynak kodunun sembolik yapısını (fonksiyon adları, kontrol akışı, sabit değerler) binary içinde korur. IDA Pro, Ghidra veya benzeri bir araç bu binary'i açtığında programın mantığı büyük ölçüde okunabilir.
MELP farklı çalışır. EOK (Endeksle Örtülü Koruma) mimarisinde binary, gerçek semboller yerine yalnızca indeks numaraları içerir. Bu indekslerin anlam tablosuna — "anahtar"a — sahip olmadan binary çalıştırılamaz, tersine mühendislik yapılamaz.
Saldırı Senaryoları
| Saldırı | Sonuç |
|---|---|
| Binary ele geçirildi, anahtar yok | Yürütülemez |
| Memory dump (çalışırken) | Bellekte yalnızca indeksler — veri okunaksız |
| IDA Pro / Ghidra analizi | Kontrol akışı ve semboller okunaksız |
| Binary kopyalanıp farklı ortamda çalıştırıldı | Anahtar eşleşmediği için başlatılamaz |
Hedef Kitle: Savunma sanayi, bankacılık ve kritik altyapı yazılımları için tasarlanmıştır. Fikri mülkiyet koruması iş modelinin merkezinde olan kuruluşlar için EOK doğrudan bir değer önerisidir.
EFBO — Kuantum Dirençli Koruma Araştırma
EOK'un üzerine inşa edilen EFBO (Extended FBO), post-quantum şifreleme yöntemleriyle FBO dispatch tablosunu korumayı hedefler. Klasik şifreleme algoritmalarının kuantum bilgisayarlar karşısında kırılgan olacağı varsayımına karşı proaktif bir mimari yanıttır.
Durum: EFBO aktif araştırma aşamasındadır. Beta sonrası yol haritasında yer almaktadır — mevcut EOK koruması bundan bağımsız olarak çalışır.
⚡ 4. LLVM Native Binary
MELP sözdizimsel bir deney değildir. Kaynak kod LLVM IR'e derlenir,
ardından llc ve platform linker'ı aracılığıyla
gerçek bir ELF binary üretilir. GC yok, interpreter yok, overhead yok.
# LLVM IR görüntüle
bin/run_melp ornek.mlp --ir
# Native binary üret
melp_compiler ornek.mlp -o a.out
# Çalıştır — lli veya interpreter gerektirmez
./a.out
Üretilen binary, lli veya herhangi bir çalışma zamanı
olmadan doğrudan işletim sistemi tarafından çalıştırılır.
C/C++ ile karşılaştırılabilir performans hedefleri için LLVM optimizer
geçişleri uygulanabilir.
🔄 5. Spawn + Channel
MELP, eşzamanlılık için dil düzeyinde spawn ve
channel desteği sunar. Paylaşılan durum yerine
mesaj geçişi modeli benimsenmiştir — bu yaklaşım stateless-first felsefesiyle tutarlıdır.
spawn
print("Paralel görev çalışıyor")
end spawn
başlat
yaz("Paralel görev çalışıyor")
başlat sonu
🎯 6. Öz-Derleme Hedefi
v1.0 milstonunda MELP derleyicisi kendini MELP ile derleyecektir. Bu hedefe "self-hosting" denir ve bir dilin olgunluk göstergesidir. Stage 0 (C++ → C++) ve Stage 1 (MELP → C++) aşamalarından sonra Stage 2 (MELP → MELP) tamamlandığında bu hedef gerçekleşmiş olacak.
| Aşama | Kaynak | Hedef | Durum |
|---|---|---|---|
| Stage 0 | C++ | C++ | ✅ Tamamlandı |
| Stage 1 | .mlp | C++ (bootstrap) | Geliştirme |
| Stage 2 | .mlp | .mlp (self-hosting) | Planlı |
Deneyin
Tüm bu özellikleri tarayıcıdan, kurulum yapmadan test edebilirsiniz.