KPD: Karamel Programlama Dili
Türkçe tabanlı yazılım dili.
Last updated
Türkçe tabanlı yazılım dili.
Last updated
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 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.
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.
Ü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.
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.
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 Türkçe Yazılım Konatı altında geliştirilmekte olan YAZILIMCA ö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 Türkçe Yazılım Konatı'na başvurmanı bekliyoruz.
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.
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.
Python, PHP, Ruby gibi oldukça gözde olan diller Stack Machine yaklaşımını kullanmaktadırlar.
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.
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.
Python, PHP, Ruby gibi oldukça gözde olan diller Stack Machine yaklaşımını kullanmaktadırlar.
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ü kontrolü için devam, continue, kır, break.