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:

Doğal MELP (varsayılan)
function add(a; b)
    return a + b
end function
C-Stili
function add(a; b) {
    return a + b
}
Python-Stili
function add(a; b):
    return a + b

Kanonik kaynak: /ORTAK/dil/<dil_kodu>/keywords.json

İngilizce
function greet(name)
    print("Hello, " + name)
end function

function main()
    greet("World")
end function
Türkçe
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.

❌ Klasik binary:
Kaynak → [fonksiyon adları + veri + kontrol akışı] → IDA Pro ile okunabilir
✅ MELP binary (EOK):
Kaynak → [sadece indeks numaraları] → anahtarsız = anlamsız

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.

Terminal
# 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.

İngilizce — Spawn
spawn
    print("Paralel görev çalışıyor")
end spawn
Türkçe — 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.