Skip to content

Repository files navigation

D++ (DPP) Programlama Dili

D++ (uzantı: .dpp), Python ile yazılmış, tamamen Türkçe sözdizimi kullanan, yeni başlayanlar için tasarlanmış bir yorumlanabilir (interpreter) programlama dilidir.

Python kadar kolay, tamamen Türkçe.


İçindekiler


Özellikler

  • Türkçe sözdizimi — tüm anahtar kelimeler Türkçe
  • Basit ve temiz — Python benzeri okunabilirlik
  • Interpreter — derleyici yok, hemen çalıştır
  • Python ile yazılmış — katkıda bulunması kolay
  • Girinti tabanlı bloklar — Python gibi : ve boşlukla blok yapısı
  • Zengin veri tipleriint, float, str, bool
  • Fonksiyon desteği — parametreli ve dönüş değerli
  • Türkçe hata mesajları — hatalar anlaşılır Türkçe
  • Terminal tabanlı — her platformda çalışır

Hızlı Başlangıç

Gereksinimler

  • Python 3.6 veya üzeri

Çalıştırma

# Doğrudan Python ile
python dpp.py dosya.dpp

# Windows batch ile
dpp.bat dosya.dpp

# REPL (etkileşimli) mod
python dpp.py --repl

Merhaba Dünya

merhaba.dpp dosyası oluşturun:

say "Merhaba Dünya"

Çalıştırın:

python dpp.py merhaba.dpp

Çıktı:

Merhaba Dünya

Dil Kılavuzu

1. Yazdırma

say "Merhaba Dünya"
say 42
say 3.14
say dogru

Çıktı:

Merhaba Dünya
42
3.14
dogru

İfadeler de yazdırılabilir:

say "Sonuç: " + str(5 + 3)

2. Değişkenler

int yas = 16
str isim = "Mert"
float boy = 1.85
bool aktif = dogru

Değişkenlere sonradan değer atanabilir:

yas = 20

Değişkenin değeri yazdırılabilir:

say isim   # Çıktı: Mert

3. Veri Tipleri

Tür Açıklama Örnek
int Tam sayı 42, -5, 0
float Ondalıklı sayı 3.14, -0.5
str Metin (string) "Merhaba"
bool Mantıksal değer dogru, yanlis

4. Operatörler

Aritmetik Operatörler:

Operatör İşlem Örnek
+ Toplama 5 + 38
- Çıkarma 5 - 32
* Çarpma 5 * 315
/ Bölme 5 / 22.5
% Mod alma 5 % 21

Karşılaştırma Operatörleri:

Operatör İşlem Örnek
== Eşit mi 5 == 5dogru
!= Eşit değil mi 5 != 3dogru
> Büyük mü 5 > 3dogru
< Küçük mü 3 < 5dogru
>= Büyük eşit mi 5 >= 5dogru
<= Küçük eşit mi 3 <= 5dogru

İşlem Önceliği:

  1. Parantez: ( )
  2. Tekli operatör: -
  3. Çarpma, bölme, mod: * / %
  4. Toplama, çıkarma: + -
  5. Karşılaştırma: == != > < >= <=

5. Koşullar

int yas = 16

eger yas >= 18:
    say "Yetişkin"
    say "Ehliyet alabilirsin"

degilse:
    say "Çocuk"

İç içe koşullar:

int not = 85

eger not >= 50:
    eger not >= 85:
        say "Pekiyi"
    degilse:
        say "Geçti"
degilse:
    say "Kaldı"

6. Döngüler

For Döngüsü (dongu):

dongu i = 1 dan 5:
    say i

Çıktı: 1 2 3 4 5

Birden fazla işlem:

int toplam = 0
dongu i = 1 dan 10:
    toplam = toplam + i
say toplam   # Çıktı: 55

While Döngüsü (iken):

int x = 0
iken x < 5:
    say x
    x = x + 1

Çıktı: 0 1 2 3 4

7. Fonksiyonlar

Tanımlama:

fonksiyon selam():
    say "Merhaba!"

fonksiyon topla(a, b):
    don a + b

Çağırma:

selam()               # Çıktı: Merhaba!
say topla(5, 3)       # Çıktı: 8

Parametreli:

fonksiyon selamla(isim):
    say "Merhaba " + isim

selamla("Ali")        # Çıktı: Merhaba Ali

Değer Döndürme (don):

fonksiyon faktoriyel(n):
    int sonuc = 1
    iken n > 1:
        sonuc = sonuc * n
        n = n - 1
    don sonuc

say faktoriyel(5)     # Çıktı: 120

8. Girdi

str ad = oku "Adınız: "
say "Merhaba " + ad

Girdi her zaman str (metin) olarak alınır. Sayıya çevirmek için tip dönüşümü kullanın:

str girdi = oku "Yaşınız: "
int yas = int(girdi)

9. Tip Dönüşümü

str(42)        # "42"
int("42")      # 42
float(5)       # 5.0
int(3.14)      # 3

10. Yorumlar

# Bu bir yorum satırıdır
# Yorumlar # ile başlar

say "Merhaba"   # Satır sonu yorum

Örnek Programlar

examples/ klasöründe hazır örnekler bulunur:

Dosya Açıklama
main.dpp Temel değişkenler ve koşullar
degiskenler.dpp Veri tipleri ve işlemler
donguler.dpp For ve while döngüleri
fonksiyonlar.dpp Fonksiyon tanımı ve çağrısı
hesap_makinesi.dpp Basit hesap makinesi
sayi_tahmin.dpp Sayı tahmin oyunu (girdi bekler)

Çalıştırmak için:

python dpp.py examples/main.dpp

Proje Yapısı

dpp/
│
├── dpp.py                 # Çalıştırıcı (CLI)
├── lexer.py               # Tokenizer (kelime analizci)
├── parser.py              # Parser (AST oluşturucu)
├── interpreter.py         # Kod yürütücü
├── errors.py              # Türkçe hata sınıfları
├── keywords.py            # Token tipleri ve anahtar kelimeler
├── utils.py               # Yardımcı fonksiyonlar
├── dpp.bat                # Windows batch çalıştırıcı
│
├── examples/              # Örnek .dpp dosyaları
│   ├── main.dpp
│   ├── degiskenler.dpp
│   ├── donguler.dpp
│   ├── fonksiyonlar.dpp
│   ├── hesap_makinesi.dpp
│   ├── sayi_tahmin.dpp
│   └── oncelik_test.dpp
│
├── tests/
│   └── test_tum_ozellikler.dpp
│
└── vscode-extension/      # VS Code dil desteği
    ├── package.json
    ├── SETUP.md
    ├── syntaxes/
    │   └── dpp.tmLanguage.json
    └── .vscode/
        └── language-configuration.json

Hata Mesajları

Tüm hata mesajları Türkçedir.

say isimm

Hata:

Satır 1

Tanımlanmamış değişken:

isimm

Diğer hata örnekleri:

Beklenmeyen karakter: '$'

Sıfıra bölme hatası

Tip hatası: ...

String sonlanmadı. Tırnak eklemeyi unuttunuz.

VS Code Desteği

D++ için VS Code eklentisi vscode-extension/ klasöründedir.

Özellikler:

  • Syntax Highlighting (anahtar kelimeler mavi, string yeşil, sayı turuncu, yorum gri)
  • Auto Indent
  • Bracket Matching
  • Comment Toggle (# ile)

Kurulum için vscode-extension/SETUP.md dosyasına bakın.


Katkıda Bulunma

  1. Bu depoyu fork edin
  2. Yeni bir branch oluşturun: git checkout -b yeni-ozellik
  3. Değişikliklerinizi yapın
  4. Test edin: python dpp.py tests/test_tum_ozellikler.dpp
  5. Branch'inizi push edin: git push origin yeni-ozellik
  6. Pull Request oluşturun

Geliştirme İpuçları

  • Yeni bir özellik eklerken önce keywords.py'ye token tipini ekleyin
  • Sonra lexer.py'de tokenize etme mantığını yazın
  • parser.py'da AST düğümünü ve ayrıştırma mantığını oluşturun
  • interpreter.py'da yürütme mantığını ekleyin
  • examples/ altına örnek ekleyin

Lisans

MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages