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.
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_donstatement 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)
- Değişkenler ve Veri Tipleri - Tip sistemi, değişken kapsamı
- Operatörler - Aritmetik, mantıksal, karşılaştırma operatörleri
- Kontrol Yapıları - Dallanma ve döngü yapıları
- Fonksiyonlar - Fonksiyon tanımlama, parametreler, dönüş değerleri
- Diziler ve Sözlükler - Composite veri yapıları
3. Referans (Reference)
- Built-in Fonksiyonlar - Standard library API referansı
4. Örnekler (Examples)
- Algoritmalar - Sıralama, arama, matematiksel algoritmalar
- Projeler - Komple uygulama örnekleri
- Oyunlar - Interactive program örnekleri
5. Gelişmiş Konular (Advanced)
- Hata Yönetimi - Exception handling ve debugging
Ö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.