Ana içeriğe geç

Giriş

Lordex, Türkçe anahtar kelimeler kullanan, C dilinde implement edilmiş, dinamik tip sistemine sahip bir programlama dilidir. Bu dokümantasyon, dilin tamamlanmış (Alpha v0.1.0) sürümü için teknik referans ve kullanım kılavuzu sağlar.

Geliştirme Durumu

Mevcut sürüm Alpha aşamasındadır. Üretim ortamında kullanımdan önce kapsamlı test yapılması önerilir. API ve sözdizimi değişiklikleri ilerideki sürümlerde gerçekleşebilir.

Dil Özellikleri

Lordex, pedagojik amaçlar ve Türkçe konuşan geliştiriciler için erişilebilirliği artırmak üzere tasarlanmıştır. Ana özellikler:

Dil Tasarımı:

  • Türkçe anahtar kelimeler ve sözdizimi (keywords: eger, iken, icin, fonksiyon)
  • Dinamik tip sistemi (runtime tip kontrolü)
  • Interpreter-based execution model
  • C-style operatör önceliği

Programlama Paradigmaları:

  • Procedural programming (fonksiyonlar, kontrol yapıları)
  • Object-oriented programming (sınıflar, kalıtım - kısmi destek)
  • Functional programming (öğeleri (first-class fonksiyonlar, lambda ifadeleri)

Veri Tipleri:

  • Primitive types: Integer, Float, String, Boolean (evet/hayir)
  • Composite types: Array, Dictionary
  • Special values: yok (null)

Development Features:

  • REPL (Read-Eval-Print-Loop) interactive mode
  • Dosya tabanlı program çalıştırma
  • Detaylı hata mesajları (satır/sütun bilgisi)

Minimum Program Örneği

En basit Lordex programı, tek bir built-in fonksiyon çağrısından oluşabilir:

yaz("Merhaba Dünya!")

Çalıştırma:

Yorumlaycı, komut satırından .lordex veya .lx uzantılı dosyaları execute eder:

lordex program.lordex

Alternatif REPL Modu:

Interactive mode için parametresiz çalıştırın:

lordex

REPL, ifadeleri satır satır değerlendirir ve sonuçları anlk gösterir.

Sözdizimi Örnekleri

Aşağıdaki bölüm, dilin temel yapı taşlarını gösterir.

Değişken Tanımlama ve Tip Sistemi

Lordex, implicit typing kullanır. Değişkenler ilk atamada oluşturulur ve tipler runtime'da belirlenir:

// Tamsayı ve ondalıklı sayılar
sayi = 42
pi = 3.14159

// Dizgiler
isim = "Lordex"

// Boolean değerler
aktif = evet
pasif = hayir

// Diziler
sayilar = [1, 2, 3, 4, 5]

// Sözlükler
kisi = {"ad": "Ahmet", "yas": 25}

Fonksiyon Tanımlama

Fonksiyonlar first-class citizens olarak işlenir ve fonksiyon anahtar kelimesi ile tanımlanır:

// Void fonksiyon (return değeri yok)
fonksiyon selamla(isim) {
yaz("Merhaba " + isim + "!")
}

// Değer döndüren fonksiyon
fonksiyon topla(a, b) {
geri_don a + b
}

// Lambda ifadeleri (arrow function sözdizimi)
kare = (x) => x * x

Özellikler:

  • Parametreler by-value olarak geçirilir
  • geri_don statement fonksiyondan çıkar ve değer döndürür
  • Lambda fonksiyonlar değişkenlere atanabilir ve parametre olarak geçirilebilir

Kontrol Akış Yapıları

Koşullu Dal Branching:

// if-else if-else zinciri
eger (puan >= 90) {
yaz("Mükemmel!")
} degilse_egar (puan >= 70) {
yaz("İyi")
} degilse {
yaz("Geliştirilmeli")
}

Koşullar boolean ifadeler olarak değerlendirilir. İlk evet (true) koşul çalıştırılır, diğerleri atlanır (short-circuit).

Iterasyon Yapıları:

// While döngüsü (condition-controlled)
iken (sayac < 10) {
yaz(sayac)
sayac = sayac + 1
}

// For-each döngüsü (collection iteration)
icin (eleman in dizi) {
yaz(eleman)
}

iken döngüsü, koşul evet olduğu sürece devam eder. icin döngüsü, dizi/koleksiyon elemanlarını sırayla dolanır.

Dokümantasyon Yol Haritası

Bu dokümantasyon, aşağıdaki yapıda organize edilmiştir:

1. Başlangıç (Getting Started)

  • Kurulum - Yorumlayıcı kurulumu ve konfigürasyon
  • İlk Program - Sözdizimi temelleri ve program yapısı

2. Dil Temelleri (Basics)

3. Referans (Reference)

4. Örnekler (Examples)

  • Algoritmalar - Sıralama, arama, matematiksel algoritmalar
  • Projeler - Komple uygulama örnekleri
  • Oyunlar - Interactive program örnekleri

5. Gelişmiş Konular (Advanced)

Önemli Uyarılar

Sürüm Durumu: Bu Alpha sürümü production-ready değildir. API değişiklikleri beklenmelidir.

Sözdizimi Notları:

  • Noktalı virgül kullanımı önerilir ancak çoğu durumda opsiyoneldir
  • Hata mesajları (line, column, source file) metadata içerir
  • REPL modu, rapid prototyping için interaktif ortam sağlar

Destek ve Katkı

Repository: GitHub üzerinde açık kaynak olarak geliştirilmektedir

Hata Raporlama: GitHub Issues sistemi üzerinden bug report ve feature request gönderilebilir

Katkı: Pull request'ler incelenmektedir. CONTRIBUTING.md dosyasına bakınız.

Kurulum ve Başlangıç

Dili kullanmaya başlamak için Kurulum Rehberi ile devam edin.