Recent News

son yazılar

Türkçe Programlama Dili


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:
  • Dinamik tipleme (dynamically typed): yani veri türü olmayan bir dil. Bu noktada Javascript ya da Python diline benzetildiği söyleyenebilir. Buradaki amaç, kulanıcıyı gereksiz detaylara boğmadan ve çalışma aşamasında performans kaygısı gütmeden temel programlama öğelerinin anlatmaya yönelik bir dil.
  • Nesne yönelimli (object oriented): Güncel bir çok dilde standart halini almış olmasından ve karmaşık (complex) veri yapıları gibi kavramların kodlanabilmesi ve öğretilebilmesi adına nesne yapısı ve NYP (nesne yönelimli programlama) öemli bir hal almaktadır. Ayrıca; bildiğini üzere veri yapılarındaki her bir eleman bir nesne olarak düşünülebilir. Örneğin bağlı listede (linked list) veya çizge (graph) üzerinde her bir eleman diğer elemanlarla etkileşim halindedir ve bazı fonksiyonları yerine getirirler. Bu nedenle veri yapılarının öğesi olan her bir eleman bir nesnedir desek çok da yanlış demiş olmayız.
  • Üst seviyeli (high level): buradaki amacımız ise kıyasla daha kolay öğrenildiği ve uygulandığı ve yeni başlayanların çabucak anlaması için en uygun dil paradigması olan üst seviye programlama dili model edilmiştir.

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 bulunanKatkı yaptığı konusuTarih
1Harun 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
2Ahmet 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
3Hande Ç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
4Salih Can Çamdere- "var" yerine Türkçe bir şey yapılsa?1 Ağustos 2017
5Caner 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
6Kadir Fırat Uyanık"var" yerine farklı bir kelime, özellikle Türkçe kullanılması mümkün olur mu?2 Ağustos 2017
7Murat 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
8Caner 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
9Selin CoşarMerhaba, 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
10Cemal 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
10Hü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
11Nevzat 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
13Kadir 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
14Kadir 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
15Efe 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
16Fatih 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
17Mustafa 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
18Mehmet 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
19Yunus 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
20Mehmet 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

Hiç yorum yok