Türkçe Yazılım Konatı
AnabetDiller & DahasıSözlüklerKimiz?
  • KPD: Karamel Programlama Dili
  • ⚙️İşlevler
    • Dizme İşlevleri
      • getir(sıra)
      • uzunluk()
      • ekle(nesne)
      • temizle()
      • arayaekle(sıra, nesne)
      • pop()
      • sil(sıra)
    • Sayı İşlevleri
      • onaltılık()
      • yuvarla()
      • tavan()
      • taban()
      • tamsayı()
      • kesir()
    • Sözlük İşlevleri
      • SÖZLÜK[].uzunluk()
      • SÖZLÜK[].getir(açar)
      • SÖZLÜK[].ekle(açar, değer)
      • SÖZLÜK[].güncelle(açar, değer)
      • SÖZLÜK[].içeriyormu(açar)
      • SÖZLÜK[].temizle()
      • SÖZLÜK[].sil(açar)
      • SÖZLÜK[].anahtarlar()
    • Yazı İşlevleri
      • SaydamBoşluk***
      • YAZI.parçagetir(buradan, burayadek)
      • YAZI.değiştir(ESKİ_DEĞER, YENİ_DEĞER)
      • YAZI.harfleriküçült()
      • YAZI.harfleribüyült()
      • YAZI.uzunluk()
      • YAZI.içeriyormu(ARANAN_DEĞER)
      • YAZI.satırlar()
      • YAZI.parçala(DEĞER)
      • YAZI.kırp()
      • YAZI.sonukırp()
      • YAZI.başıkırp()
  • Belgeler
    • Kılavuzlar
    • Hakkında
      • SSS
      • Takımlar
  • Sözlükler
    • Genel Sözlük
    • Bilişim Terimleri Sözlüğü
  • CHANGES
  • Contributor Covenant Code of Conduct
  • Contributing
Powered by GitBook
LogoLogo

Biz

  • Anabet

Buradayız

  • Discord
  • Instagram
  • Facebook

Türkçe Yazılım Konatı

On this page
  • Karamel
  • Kılavuzlar
  • İndirilebilir Durumda Mı?
  • Karamel Hangi Aşamada?
  • Karamel Hangi Ölçünlere Göre Geliştiriliyor?
  • Takıma Katıl
  • Karamel Hakkında Bilmeniz Gerekenler
  • Karamel Ne Tür Sanal Düzenek Kullanıyor?
  • Stack Machine Ne Tür Çalışır?
  • Temel Tipler
  • Karamel Hakkında Bilmeniz Gerekenler
  • Karamel Ne Tür Sanal Düzenek Kullanıyor?
  • Stack Machine Ne Tür Çalışır?
  • Temel Tipler
  • Döngü
  • Sorgulama
  • Fonksiyon tanımlama

KPD: Karamel Programlama Dili

Türkçe tabanlı yazılım dili.

NextDizme İşlevleri

Last updated 2 years ago

Karamel Programlama Dili, Türkçe taban alarak oluşturulan bir yazılım programlama dilidir. Ana dili Türkçe olan kişilerin Türkçe ile programlama yapabilmeleri için geliştirilmektedir. Türlü türlü amaçlar için kullanılabilir.

Bilişim alanındaki; yazılım alanındaki; çaylaklar ve uzmanlar için kullanması kolay, öğrenmesi eğlenceli, işlek, ilgi uyandırıcı ve örnek bir Türkçe tabanlı geliştirme ortamı sağlamak başta gelen amaçlarımızdır.

Karamel

Karamel dili, gözde dillerde bulunan özelliklerden esinlenerek geliştirilmeye başladı. Tanınan bilinen iki işletim düzeni olan Windows ve MacOsX üstünde sorunsuzca kullanılabilir.

Kendisine ait sanal düzenek üzerinde çalışır. Ayrıca birçok düzlemde çalıştırılabilir özelliktedir. Dinamik olarak değişken tanımlayabilir ve dahasını edebilirsiniz.

Bütün dil, Rust Programlama Dili kullanılarak geliştirilmektedir. Kendi sanal düzeneği üstünde çalışan dil olmasının yanısıra, WebAssembly yardımı ile ağ üzerinde de kullanılabilir.

Kılavuzlar

Bir programlama dili olan Karamel dilini, öğrenip kullanmak için kılavuzlardaki bilgilerden yararlanabilirsiniz. Bilinmesi gereken ayrıntıları anlaşılır biçimde size sunduk.

İndirilebilir Durumda Mı?

Üzgünüz, henüz bilgisayarınıza veya başka bir aygıta indirilebilir bir örneğini paylaşmadık. Ancak en kısa sürede ağ üstünden çalışan sürüm yayınlamayı düşünüyoruz.

Karamel Hangi Aşamada?

  • Geliştirilme aşamasında olup emekleme dönemindedir.

  • Dört bir yandan gelecek düşünce, görüş ve kodlama gibi türlü yardıma gerek duymaktadır.

  • Terim dağarcığında oturmamış konuları bulunmaktadır.

  • Sözdizimi üzerinde esnek tutum sergilense bile kömek gerekmektir. Başka deyiş ile yardım gerekmektedir.

Karamel Hangi Ölçünlere Göre Geliştiriliyor?

Takıma Katıl

Karamel Hakkında Bilmeniz Gerekenler

Karamel Ne Tür Sanal Düzenek Kullanıyor?

KPD için Stack Machine adlı sanal makine mimarisini kullanıyoruz. Bunu kullanmamızın nedeni yeni özellikleri daha hızlı bir şekilde gömülü edebilmemizden dolayı. Diğer Register Machine yaklaşımına kıyasla daha yavaş olsa da ilk amacımız performanstan ziyade özellik ekleyip, stabil hâle getirmek.

Stack Machine Ne Tür Çalışır?

Bu mimaride kullanılacak olan değişkenler bir yığın olarak üst üste istiflenir ve sonrasında LIFO (Last In First Out) yaklaşımına göre değişkenler istiflerden geri alınıp işleme tabii tutulur. Bu yapının avantajı kodlar en basit haline dönüştürülerek daha performanslı olarak çalışması sağlanmaktadır. Yazılımcının yazdığı yüksek seviyeli olan kodlar işlenerek ara kodlara dönüştürülmektedir. Dönüştürülen ara kodlar TPD sanal makinesinde çalıştırılmaktadır. Aslında Üst düzey yazmış olduğunuz kodlar ve sanal makinenin işledi kodlar olarak iki farklı programlama dili içermektedir.

Başka diller kullanıyor mu?

Python, PHP, Ruby gibi oldukça gözde olan diller Stack Machine yaklaşımını kullanmaktadırlar.

Temel Tipler

Karamel Hakkında Bilmeniz Gerekenler

Karamel Ne Tür Sanal Düzenek Kullanıyor?

KPD için Stack Machine adlı sanal makine mimarisini kullanıyoruz. Bunu kullanmamızın nedeni yeni özellikleri daha hızlı bir şekilde gömülü edebilmemizden dolayı. Diğer Register Machine yaklaşımına kıyasla daha yavaş olsa da ilk amacımız performanstan ziyade özellik ekleyip, stabil hâle getirmek.

Stack Machine Ne Tür Çalışır?

Bu mimaride kullanılacak olan değişkenler bir yığın olarak üst üste istiflenir ve sonrasında LIFO (Last In First Out) yaklaşımına göre değişkenler istiflerden geri alınıp işleme tabii tutulur. Bu yapının avantajı kodlar en basit haline dönüştürülerek daha performanslı olarak çalışması sağlanmaktadır. Yazılımcının yazdığı yüksek seviyeli olan kodlar işlenerek ara kodlara dönüştürülmektedir. Dönüştürülen ara kodlar TPD sanal makinesinde çalıştırılmaktadır. Aslında Üst düzey yazmış olduğunuz kodlar ve sanal makinenin işledi kodlar olarak iki farklı programlama dili içermektedir.

Başka diller kullanıyor mu?

Python, PHP, Ruby gibi oldukça gözde olan diller Stack Machine yaklaşımını kullanmaktadırlar.

Temel Tipler

  • Tam Sayı (1024, 1_204, 2048)

  • Noktalı Sayı (1.234, 1_234.56789, 123.4e+4, 1_230.4e+4)

  • Yazı ("Merhaba Dünya", 'Merhaba Dünya')

  • Bool (doğru, yanlış)

  • Atom (:bilgi, :başarılı, :hatalı)

  • Liste ([1,2,3], [], [:kayıt_başarılı, 'Kullanıcı Bilgisi'])

  • Sözlük ({'ad':'erhan', 'soyad':'barış'})

Döngü

kayıt = 10
toplam = 0
döngü kayıt iken:
    gç::satıryaz(kayıt)
    kayıt -= 1
    toplam += 1
hataayıklama::doğrula(toplam, 10)
hataayıklama::doğrula(kayıt, 0)
sonsuz:
    gç::satıryaz("Sonsuza kadar devam")

Döngü kontrolü için devam, continue, kır, break.

Sorgulama

eğer a == b:  
    gç::satıryaz('a eşittir b')
yoksa a == c:  
    gç::satıryaz('a eşittir c')
yoksa:  
    gç::satıryaz('a hiçbirine eşit değil')

Fonksiyon tanımlama

fonk metod_1(a):
    gç::yaz(a)

fonk merhaba_dünya:
    gç::yaz('Merhaba dünya')

fonk metod_1(a):
    gç::yaz(a)

fonk faktoriyel(sayı):    
    eğer sayı==1 veya sayı==0:
        döndür 1
    yoksa:
        döndür sayı * faktoriyel(sayı - 1)

faktoriyel_sonucu = faktoriyel(10)
gç::satıryaz('faktoriyel 10 => ', faktoriyel_sonucu)

👉 Deneme sürümünü şimdi dene!

Türkçe tabanlı yazılım programlama dillerinde kullanılmak üzere oluşturulan kararlı ölçünler henüz bulunmuyor. Bu yüzden şimdilik ölçünsüzdür. Ancak altında geliştirilmekte olan ölçünlerini izliyor, uygun bulduğu yanlarını değerlendirip kullanıyor.

Karamel, Türkçe Yazılım Konatı altında birleşen kişilerle birlikte geliştiriliyor. Bu takımda yer almak için 'na başvurmanı bekliyoruz.

https://erhanbaris.github.io/karamel/karamelweb/src/www/
Türkçe Yazılım Konatı
YAZILIMCA
Türkçe Yazılım Konatı