MELP Dil Referansı

Kanonik kaynak: ORTAK/dil/  |  Versiyon: Stage 1  |  Güncelleme: 2026-04

Derleme Yolu

Stage 1'de .mlp dosyaları normalizer sarmalayıcısı üzerinden derlenir. Kullanıcı yazdığı kaynak (boşluklu anahtar kelimeler) önce iç temsile (pmlp) çevrilir, ardından derleyici bu iç temsili işler.

# Çalıştır
bin/run_melp program.mlp

# LLVM IR görüntüle
bin/run_melp program.mlp --ir

# Native binary üret
bin/melp_compiler program.mlp -o program

Temel Kurallar

KuralDoğru ✅Yanlış ❌
Parametre ayırıcıfonksiyon(a; b; c)fonksiyon(a, b, c)
Dizi literali[1; 2; 3][1, 2, 3]
Satır sonu yokx = 42x = 42;
Blok sonlandırıcıfonksiyon sonufonksiyon_sonu
koşul → ise zorunlukoşul x > 0 isekoşul x > 0
değilse koşuldeğilse koşul x > 0 iseelif x > 0
Döngüden çıkışçıkbreak
Yorum-- yorum// yorum
Mantıksal operatörve, veya, değil&&, ||, !
Modulox mod yx % y

Tipler

İngilizceTürkçeAçıklama
numericsayısalTam sayı veya ondalık (derleyici seçer)
stringmetinMetin değeri
booleanmantıksaltrue / false
nonehiçbirDönüş değeri olmayan fonksiyon
nullboşNull / boş değer
sayısal x = 42
sayısal pi = 3,14
metin isim = "MELP"
mantıksal tamam = doğru
metin boşDeğer = boş

Değişkenler

sayısal sayaç = 10
metin dil = "MELP"
mantıksal aktif = doğru

-- Yeniden atama — tip anahtarı yok
sayaç = sayaç + 1
dil = "Türkçe MELP"

-- Sabit
sabit sayısal MAX = 1000
sabit metin UYGULAMA = "MELP"

Operatörler

Aritmetik

x + y
x - y
x * y
x / y
x mod y     -- modulo (% değil)

Karşılaştırma

x == y
x != y
x < y
x > y
x <= y
x >= y

Mantıksal

x ve y
x veya y
değil x

Metin Birleştirme

metin tam = "Merhaba, " + isim + "!"

Koşullar

koşul puan >= 90 ise
    yazdır("A")
değilse koşul puan >= 80 ise
    yazdır("B")
yoksa
    yazdır("C")
koşul sonu

Döngüler

Koşullu Döngü (while-stili)

sayısal i = 0
döngü i < 10
    yazdır(i)
    i = i + 1
döngü sonu

Sonsuz Döngü

döngü
    koşul bitti ise çık
    işle()
döngü sonu

Her Biri İçin (for each)

sayısal[] sayılar = [1; 2; 3; 4; 5]
her n içinde sayılar
    yazdır(n)
her sonu

Fonksiyonlar

-- Dönüş değeri olan
sayısal fonksiyon topla(sayısal a; sayısal b)
    döndür a + b
fonksiyon sonu

-- Dönüş değeri olmayan
hiçbir fonksiyon selamla(metin isim)
    yazdır("Merhaba, " + isim)
fonksiyon sonu

-- Çağrım
sayısal sonuç = topla(3; 5)
selamla("Dünya")

Lambda

sayısal iki_kat = lambda(sayısal x)
    döndür x * 2
lambda sonu

yazdır(iki_kat(5))    -- 10

Struct

yapı Nokta
    sayısal x
    sayısal y
yapı sonu

Nokta n = Nokta { x: 10; y: 20; }
yazdır(n.x)

Listeler

metin[] isimler = ["Ali"; "Can"; "Ece"]
yazdır(isimler[0])          -- Ali
yazdır(isimler.length)      -- 3

-- Ekle
isimler.push("Duru")

Hata Yönetimi

dene
    sayısal sonuç = riskliİşlem()
    yazdır(sonuç)
hata yakala
    yazdır("Hata: " + hata.mesaj)
sonunda
    temizle()
dene sonu

Fırlat / Yakala

-- Hata fırlatan fonksiyon
sayısal fonksiyon böl(sayısal a; sayısal b)
    koşul b == 0 ise
        fırlat "Sıfıra bölme hatası"
    koşul sonu
    döndür a / b
fonksiyon sonu

Eşzamanlılık — Spawn & Channel

-- Başlat: paralel görev
başlat
    yazdır("Paralel çalışıyor")
başlat sonu

-- Eşzamansız / Bekle
eşzamansız fonksiyon veriGetir()
    metin veri = bekle disktenYükle("veri.txt")
    yazdır(veri)
fonksiyon sonu

Türkçe Anahtar Kelimeler (Özet)

İngilizceTürkçe
function / end functionfonksiyon / fonksiyon sonu
if / then / elsekoşul / ise / yoksa
end ifkoşul sonu
loop / end loopdöngü / döngü sonu
returndöndür
printyaz
maingiriş
numericsayısal
stringmetin
booleanmantıksal
true / falsedoğru / yanlış
and / or / notve / veya / değil
struct / end structyapı / yapı sonu
spawn / end spawnbaşlat / başlat sonu
try / catch / end trydene / hata yakala / dene sonu
import / exportiçe_aktar / dışa_aktar
constsabit
exitçık

Yeni Dil Ekleme

MELP derleyicisi herhangi bir dil için minimal bir JSON yapısı ile genişletilebilir.

-- ORTAK/dil/<dil_kodu>/keywords.json
{
  "schema_version": "1.0.0",
  "meta": {
    "name": "Español",
    "lang_id": "spanish",
    "code": "es",
    "enabled": true
  },
  "keywords": {
    "function":     "función",
    "end function": "fin función",
    "print":        "imprimir",
    "if":           "si",
    "then":         "entonces",
    "return":       "retornar"
  }
}

Bu dosya oluşturulduğunda MELP derleyicisi İspanyolca kaynak dosyaları herhangi ek derleme adımı gerektirmeden işleyebilir. Algoritma değişmez.

← Özelliklere Geri Dön Web IDE'de Deneyin →