Hakkında

İçerik Listesi

Türkçe Programlama Dili Hakkında

Nedir?

Yürütülen bu proje; bir programlama dili Türkçe olabilir mi, hiç bilmeyenlerin ya da deneyim sahibi olmayanların öğrenmesine katkı sağlayabilir mi gibi sorulara cevap aranması amacıyla her hangi ticari bir amaç gütmeden ortaya konmuştur.

Amaç, evrensel bir dil geliştirmekten ziyade, öğretmede kullanıbilecek pratik bir dil olmasıdır.

Sadece dil terimlerini Türkçe'leştirmeden ziyade onları görselleştirmeye çalışması ile programlamayı yeni öğrenenlere faydalı bir biçimde öğreteceği düşünülmektedir. Yazım dili olarak C/C++/Java ve Python dillerini benimsemesi bu dillere geçişi kolaylaştırması için amaçlanmıştır.

Geliştirilmekte olan bu dille irtibatta kalmak veya katkıda bulunmak isterseniz aktif facebook sayfasını veya alakalı grubu buradan takip edebilirsiniz.

Dilin söz dizimsel özellikleri nedir?

Kullanılan dilin söz dizimi (syntax) özgün olarak üretilmiştir. Her programlama dilinde olduğu gibi esinlendiği bir kaç güncel programlama dili mevcuttur. Bunlar arasında Java/C++ dil ailesi ile Python dili olduğu söylenebilir.

Kullanılan dilde; öncelikle alışılageldik dil öğelerinin kullanılmasına dikkat edilmiştir. Örneğin Java dil ailesinden bileşik komutların süslü prantezde yazılması alınmış, satır sonlarının noktalı virgülle bitme zorunluluğu olmaması yönüyle de python örnek alınmış denebilir.

Programlama öğrenen kişinin programın çalışma mantığını anlamasına yardımcı olması hedeflenen dilin özelliklerinden bir kaçını şöyle maddeler halinde sayabiliriz:

  1. Anlaması kolay (doğal konuşma diline yakın)
  2. Sadece amaca özgü olacak kadar detaylı (gereksiz detayları olmayan)
  3. Web üzerinde kodlanabilen ve çıktıları alınabilen/gözlemlenebilen

Bu motivasyonla; öncelikle nasıl bir dil hedeflediğimizi daha kitabi bir şekilde anlatalım:

Dilin teknik özellikleri nedir?

Bilindiği üzere her bir programlama dili makinenin anlayabileceği makine dili üzerine soyutlamalar yaparak geliştirilir ve biraz daha detaylı bahsedersek; bu bir takım araçlar özel araçlar -söz dizim hatası (syntax error) için ayrıştırıcı (parser), bunları anlamlı hale getirip makineye (bilgisayar donanımına) ileten yorumlayıcı (interpreter) ya da derleyici (compiler)- kullanılarak yapılır.

Bizim yukarıda bahsettiğimiz gereksinimlerin karşılanabilmesi için -web üzerinde kodlanabilen ve çıktıları alınabilen/gözlemlenebilen- bahsedilen araçların da web tarayıcının imkan verdiği Javascript dilinde yazılması icap etmektedir. Javascipt istemci (client) tarafında çalıştığından sunucu taraflı sistemlere göre daha çevik (dynamic) uygulamalar yapılması söz konusu olabilmektedir.

Bu projede ayrıştırıcı (parser) olarak Javascript tabanlı peg.js kütüphanesi kullanılmaktadır. Peg.js farklı dillerde yazılmış Yacc (Yet Another Compiler Compiler), Bison ve ANTLR benzeri bir çeşit ayrıştırıcıdır. Sözü geçen bu ayrıştırıcılar ise sırasıyla C, C++ ve Java dillerinde yazılmıştır. Ayrıştırmadan sonra elde edilen parçaların mana kazanması, işlenmesi için ise javascript dili kullanımlamktadır.

Geliştirici ve Katkıda Bulunanlar

Dilin aktif olarak 2 geliştiricisi bulunmaktadır, ama fikir verme anlamında bir çok kişi projenin elinden tutmuştur.

Katkıda bulunanlar ve konuları

Aşağıda bir şekilde iletişime geçmiş ve değerli fikilerini paylaşmış kişilerin verdiği yorumlar mevcuttur:

Katkıda bulunan Katkı yaptığı konusu Tarih
1 Harun Kaya - syntax veya runtime errorlar hakkında geliştiremeler olsa iyi olur
- değişken tanımlarken "var" değilde "değişken" tipini kullanılması daha makul olmaz mı?
- adımların ilerleme hızını ayarlabileceğimiz kaydırıcı (slider) koyarsan daha etkileşimli olur gibi sanki?
30 Temmuz 2017
2 Ahmet Sarıcı - Bu dil diğer dillerden farklı jenerik bir dil olduğundan, bu dilden başka dillerde çıktı üretmek mümkün olabilir mi? Mesela C veya Java gibi.
- Rehber kısmında başlıkları sayfa sayfa görüntülense daha iyi olmaz mı?
2 Ağustos 2017
3 Hande Çelikkanat - "hatali kod" yazılsa süper olur, sonra detayli aciklama girersin, bu ilk şimdi bakacak kullanıcılar icin iyi olur.
31 Temmuz 2017
4 Salih Can Çamdere - "var" yerine Türkçe bir şey yapılsa? 1 Ağustos 2017
5 Caner Topçu - Belki 3-4 modlu birşey olsa, önce şekillerle flowchart, sonra türkçe kodlar, sonra 2 tane programlama kod örnegi gibi modları olabilir. hatta flowchatı kademeli öğrenme şeklinde oyunlaştırarak yapabilirsin. 2 Ağustos 2017
6 Kadir Fırat Uyanık "var" yerine farklı bir kelime, özellikle Türkçe kullanılması mümkün olur mu? 2 Ağustos 2017
7 Murat Akın - Genel olarak bu tarz eğitim platformları aşamalı eğitim metodu kullanıyor. Video ile anlatıp bunun uygulamasını yaptırıyor ve doğruluğunu kontrol Edip öneride bulunuyor..
-Kodlama sayfasında yazdığımız kodları txt olarak kaydetmk mümkün ancak daha önceden masaüstüne yazdığımız txtleri çağırma olursa güzel olur diye düşünüyorum.
5 Ağustos 2017
8 Caner Topçu - Kodu yazarkeninfo tuşuna bastığımda sayfa gitmeden gelse bu bilgiler, popup window gibi, birşeyler yazarken kodları incelemek istiyorum ama doğru mu yanlışmı diye diğer sayfaya gidince kopuyor.
- Bir de geri dönmek için en başa geri dönmem gerekiyor her zaman, mesela ana sayfa butonu kenarda bi yerde sabit durabilir.
7 Ağustos 2017
9 Selin Coşar Merhaba, benimki naçizane bir istek. Kapaktaki görüntüde "online" kelimesinden ziyade farklı bir kelime geçse idi mutlu ederdi. 7 Ağustos 2017
10 Cemal Aker - Video derslerle çekilip olayı canlandırabilirsin biraz.
- Geliştirilen dil Ebob (En büyük ortak bölen) bulma problemi mesela öklid algoritması ile algoritması yazılabilir. Yani, aslında bi yandan da algoritma ve veri yapıları eğitimi de verilebilir. Bu sayede de hem dil gelişir hem de kullanım alanı doğar.
8 Ağustos 2017
10 Hüseyin Cahit Kebapçıoğlu - Forum açılır ve bir topluluk oluşturulursa çok iyi olur, bu sayede insanlar hem kodlarını paylaşabilirler hem de sorun yaşadıklarında birbirlerine danışabilirler.
- Üyelik sistemi konulup ufak daily challange'lar ve görevlerle kullanıcıların puan kazanması sağlanabilir.Bu sayede kullanıcılar forumda farklı yerlere sahip olabilirler.
8 Ağustos 2017
11 Nevzat Sevim - Kod syntax error oldugunda calistir dedigimiz de ya da demeden. Hata oldugunu soylese daha guzel olabilir.
- Suan anladigim kadariyla sadece bu web sitesi uzerinden calisiyor. Ileride baska ortamlarda calistirabilme ihtimaline binaen, Kodlari diger ortamlara entegre olabilecek sekilde yazmak mantikli olabilir. Mesala windows uygulamasi uzerinden kod yazmayi ogreniyor olsun, belki surekli internetde olmayabilir offline mod da calisabilmesi icin de boyle bir sey yapabilirsiniz.
9 Ağustos 2017
12 İrfan Düzenli - Kaç değişken kullanılmışsa o kadar var kullanmam gerekiyor. Bu da gereksiz tekrara neden olacak. Değişkene herhangi bir değer vermezsem çalışmıyor. Bunları düzeltirseniz daha iyi olacaktır. 15 Ağustos 2017
13 Kadir Kara - Hataların satınırı ve yerini gösteren hata dökümü yeni öğrenen birisinin işine epey yarar.
- Türkçe Programlama Dili'nin gelişim sürecini raporlamak ta daha sonra bu işe gireceklere bilgi vermesi açısından raporlanabilir.
- Sürekli Eğitim Merkezi gibi yerlerde Workshop verilerek dil tanıtılabilir.
- Programlamaya yeni başlayan kişilerle aracın işe yararlığı test edilebilir.
17 Ağustos 2017
14 Kadir Akın - Websitesinin ismi çok uzun. Daha kısa ve kolay yazılacak bir websitesi ismi bulursanız kullancılar açısından çok daha kolay olacaktır.
- Bir de sanırım henüz fonksiyon tanımlaması özelliğini yapmamışsınız. Sanırım eklenecek özellikler arasında aklınızdadır.
17 Ağustos 2017
15 Efe Tiryaki - Turkcenin yazim cumle yapisina gore kurgulamakta fikir olarak ilginc olabilir. Örnegin:
- eğer (a<5) ise {bir şey yap} (a < 5) ise {bir şey yap} değilse {bir şey yap} .....
- (a<5) iken {a++} (while döngüsü)
- değisken x={1,2,3} ; x herbiri için{ birseyler yap}
- Bir de sanırım henüz fonksiyon tanımlaması özelliğini yapmamışsınız. Sanırım eklenecek özellikler arasında aklınızdadır.
17 Ağustos 2017
16 Fatih Toy - Bir önerim syntaxda gelenekselin dışına çıkıp Türkçe cümle yapısını taklit etmek olabilir. Öğrenciler konuştukları gibi kod yazabilirler ise çok faydalı olur diye düşünüyorum. 18 Ağustos 2017
17 Mustafa Yemural - Eğer web veya mobil gibi alanlarda uygulama geliştirmek gibi bir amacı olacaksa bence c tipi anahtar kelimelerin Türkçe'ye çevrilmesinden ziyade özgün bir syntax ve semantic kullanılarak çok güzel bir şeyler çıkabilir. Başarılar... 21 Ağustos 2017
18 Mehmet Emin Fedar - for yerine "sayarakYinele" değil de "say" veya "saydir" gibi kısa şeyler kullanılabilir. "değişken" yerine (o da kalsın tamam da ek olarak:) "değ" denebilir. Tabi bunun eğitim amaçlı olduğunu düşünürsek verilen isimler gayet de iyi :) 22 Ağustos 2017
19 Yunus Emre Düşmez - Benim aklıma doğrudan, türkçe olmuşken hazır bir de çocuklara yönelik bir şeyler yapılabilir mi sorusu geldi.
- Bir de konsol kod ekranının üstünde olsa veya sağ taraftaki görüntüleme ekranının altında olsa ve konsolda yazılar alt alta yazsa daha iyi olur gibi.
22 Ağustos 2017
20 Mehmet Can Ertan - Yazılan Türkçe kodun başka dildeki örneğin Python'daki karşılığı ana kodlama alanının sağ tarafına değişken değeri koymuşsunuz ya, ana kodlama ekranının sol tarafına da yazılan kodun orjinali nasıl gözükür onu yansıtabilir..
17 Mart 2018

Kim ne diyor?

Farklı disiplinden insanları proje hakkında verdiği görüşler ise şu şekilde:


Kaynak kodlara erişim?

Bu proje açık kaynak olarak geliştirilmektedir, ünlü versiyonlama sistemi GitHub üzerinden online olarak erişebilir, fork edip kendi dilinizi de bu projeyi örnek alarak geliştirebilirsiniz.

Dil geliştirmekla alakalı soruları da açık bir şekilde cevaplayabiliriz.

Github bağlantisi: https://github.com/mehmetakifakkus/turkceprogramlamadili

Sürüm Tarihçesi

Uyumluluklar hakkında

Kodların çıktıları ve animasyon halinde görüntülenebilmesi aşağıdaki tarayıcı ve versiyonlarda problemsiz olarak mümkündür:

Kodlama İçin Bazı Kaynaklar

Kodlama yapabilmek için başka interaktif kaynaklar da mevcut, bunlar daha çok çocukların eğlenerek öğrenebileceği tarzda kaynaklar.

Şu araçlar sürükle bırakarak kodlama yapmaya imkan sağlamaktadır:


Şu araçlar metinsel kodlama yapmaya imkan sağlamaktadır: