programlama-dilleri

En İlginç 5 Programlama Dili

Öncelikle şunu söyleyeyim, birazdan göreceğiniz hiçbir programlama diliyle dünyayı ele geçirecek bir robot yapamazsınız. O yüzden eğer böyle bir beklentiniz varsa “buradan içeri giren, tüm umutlarını geride bıraksın!

Şaka bir yana yazılım öğrenmeye yeni başlamışsanız öğrendiğiniz programlama dilleri beklentilerinizi karşılayamayabiliyor. Örneğin, Facebook, Google benzeri siteler kurmak, hackerlık yapmak falan istiyorsunuz ama öğrendiğiniz programlama dili iki sayıyı toplayan bir program yazmanızı sağlıyor. Şimdi inceleyeceğimiz programlama dilleri hiç ama hiç bir işinize yaramayacak. Bunlar genellikle şaka olarak geliştirilmiş diller. Kullanımları zor olduğu gibi kullanabileceğiniz alanlar da oldukça sınırlı (burada “oldukça sınırlı” neredeyse hiç anlamına geliyor).

İlginç programlama dillerine bakmadan önce isterseniz programlama dilinin ne olduğuna bakalım. Programlama dilleri yazılımcıların bilgisayara ne yaptırmak istediğini anlatmaya yarayan fonksiyon ve komutlardır. Farklı fonksiyon ve komutların farklı şekilde dizilmesiyle yazılan pek çok farklı programlama dili vardır. Şimdi isterseniz en ilginçlerini incelemeye başlayalım. Liste herhangi bir sıraya göre değildir.

1-Beyin Bozan

beyin bozan

Beyin Bozan (Brainf**k) 1993 yılında Urban Müller tarafından geliştirildi. Müller’in amacı en az komut kullanılan dili geliştirmekti. Müller yalnızca sekiz sembolle ( ><+-.,[] ) yazılan bir dil geliştirdi. Bu dil Turing-bütün bir dil olduğundan herhangi bir işlemi gerçekleştirmek için kullanılabilinir ama çok zordur. Bu dilin bir başka özelliği de en küçük derleyici kullanan dil olmasıdır. Derleyicisi 200 bayttan küçüktür. Derleyici bir yazılım dilinde yazılan kodu 0 ve 1’lerden oluşan makine koduna çeviren programdır.

Beyin Bozan’da her baytı tek tek ayarlarsınız. Örneğin programın “Merhaba Dünya” yazmasını istiyorsanız tüm harfleri teker teker kodlamanız gerekir. İsterseniz ekrana “Hello, World!” (Merhaba, Dünya!) yazdıran program kodunu inceleyelim. Burada her bayt bir hücre olarak belirtilmiştir.

[tabgroup]
+++++ +++++ sayaca (sıfırıncı hücreye) 10 değerini ata
[ sıradaki dört hücreye 70/100/30/10 değerlerini atamak için döngü kullan
> +++++ ++ birinci hücreye 7 ekle
> +++++ +++++ ikinci hücreye 10 ekle
> +++ üçüncü hücreye 3 ekle
> + dördüncü hücreye 1 ekle
<<<< – sayacın (sıfırıncı hücrenin) değerini düşür
] > ++ . ‘H’ yaz
> + . ‘e’ yaz
+++++ ++ . ‘l’ yaz
. ‘l’ yaz
+++ . ‘o’ yaz
> ++ . ‘ ‘ yaz
<< +++++ +++++ +++++ . ‘W’ yaz
> . ‘o’ yaz
+++ . ‘r’ yaz
—– – . ‘l’ yaz
—– — . ‘d’ yaz
> + . ‘!’ yaz
> . Aşağı satıra geç
[/tabgroup]

Beyin Bozan dili derlenirken sekiz sembol dışında hiçbir sembol ve yazı dikkate alınmaz. Bu yüzden kodu bilgisayara böyle girmemiz veya aşağıdaki gibi girmemiz bir şeyi değiştirmez.

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.——.——–.>+.>.

Yazılımcılar Beyin Bozan’ı genellikle kendilerini zorlamak ve eğlenmek için öğrenirler (evet bundan zevk duyuyoruz). Ama öğrenilmesi yazılım mantığının kavranması için de faydalıdır.

2-INTERCAL

william-shatner-begging

INTERCAL’ın temel esprisi oldukça basittir. Kod yazarken her satırın başına DO (yap), PLEASE (lütfen) veya PLEASE DO (lütfen yap) komutlarından birini koyarsınız. Satırların 1/3 ile 1/5’i arası kibar olmalıdır. Eğer bu oran 1/5’ten küçükse kaba olduğunuz için, 1/3’ten büyükse samimiyetsiz olduğunuz için bilgisayar programı çalıştırmaz.

Donald R. Woods ve James M. Lyon tarafından 1972 yılında geliştirilen bu dilin başka bir özelliği ise “ezoterik programlama dilleri” denilen bu tür dillerin ilki olmasıdır. İkili bu dili geliştirirken o zamana kadar yapılan hiçbir dile benzememesini hedeflemiş ve pek çok kişiye esin kaynağı olmuşlardır.

3-Tavuk

tavuk

Torbjörn Söderstedt tarafından geliştirilen Tavuk (Chicken) dili, aslında çok hoş bir dil olabilirmiş. Söderstedt önce 10 komutla çalışabilen bir dil geliştirmiş, daha sonra biraz eğlenmek için bu komutların hepsinin adını chicken yapmış. Bu dilde ilk komut için bir, ikinci komut için iki, üçüncü komut için üç, onuncu komut için on kere chicken yazmak gerekiyor. Ondan fazla chicken yazarak da harfler ayarlanıyor. Örneğin “Hello, World!” (Merhaba, Dünya!) yazdırmak için şöyle yazmanız gerekiyor:

[tabgroup]

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken 

[/tabgroup]

Başka örnek kodlar görmek veya dili kullanmayı denemek isterseniz torso.me sitesine göz atabilirsiniz.

4-Şef

şef

Bu dil, ezoterik diller arasında kesinlikle favorim. Bu dilde yemek tarifi verirmiş gibi program yazabilirsiniz. Eğer Şef (Chef) dili kullanıyorsanız genellikle değişkenlere gıda maddelerinin isimlerinin verirsiniz. Değişkenleri tuttuğunuz yığınlar “çırpma kabı” olarak adlandırılır ve bardak, kaşık gibi ölçü birimleri kullanırsınız. Bu dilde program yazabilmeniz için İngilizce bilmeniz de gereklidir çünkü derleyici yalnızca İngilizce tarifleri algılar.

Şef 2002 yılında David Morgan-Mar tarafından geliştirilmiştir. Aynı zamanda Irregular Webcomic! yazarı olan Morgan-Mar’ın geliştirdiği sekiz ezoterik dil daha bulunmaktadır. Bu dilde bazen işleminizi birkaç satırda tanımladıktan sonra gereksiz bir tarif yazmanız gerekebilir. Çünkü program tarif olmadıkça derlenmez. Aşağıdaki “Hello, world!” yazdıran kod buna bir örnektir.

[tabgroup]

Hello World Cake with Chocolate sauce.

This prints hello world, while being tastier than Hello World Souffle. The main chef makes a ” world!” cake, which he puts in the baking dish. When he gets the sous chef to make the “Hello” chocolate sauce, it gets put into the baking dish and then the whole thing is printed when he refrigerates the sauce. When actually cooking, I’m interpreting the chocolate sauce baking dish to be separate from the cake one and Liquify to mean either melt or blend depending on
context.

Ingredients.
33 g chocolate chips
100 g butter
54 ml double cream
2 pinches baking powder
114 g sugar
111 ml beaten eggs
119 g flour
32 g cocoa powder
0 g cake mixture

Cooking time: 25 minutes.

Pre-heat oven to 180 degrees Celsius.

Method.
Put chocolate chips into the mixing bowl.
Put butter into the mixing bowl.
Put sugar into the mixing bowl.
Put beaten eggs into the mixing bowl.
Put flour into the mixing bowl.
Put baking powder into the mixing bowl.
Put cocoa powder into the mixing bowl.
Stir the mixing bowl for 1 minute.
Combine double cream into the mixing bowl.
Stir the mixing bowl for 4 minutes.
Liquify the contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
bake the cake mixture.
Wait until baked.
Serve with chocolate sauce.

chocolate sauce.

Ingredients.
111 g sugar
108 ml hot water
108 ml heated double cream
101 g dark chocolate
72 g milk chocolate

Method.
Clean the mixing bowl.
Put sugar into the mixing bowl.
Put hot water into the mixing bowl.
Put heated double cream into the mixing bowl.
dissolve the sugar.
agitate the sugar until dissolved.
Liquify the dark chocolate.
Put dark chocolate into the mixing bowl.
Liquify the milk chocolate.
Put milk chocolate into the mixing bowl.
Liquify contents of the mixing bowl.
Pour contents of the mixing bowl into the baking dish.
Refrigerate for 1 hour. 

[/tabgroup]

Bu arada dil öğrenirken önce “Hello, world!” yazdırmak bir yazılımcı geleneğidir. O dilin dünyasına merhaba demenizin dışında ekrana bir şey yazdırmak yazılımda en kolay şey olduğu için güzel bir başlangıçtır.

5-Shakespeare

shakespeare

Uyarımı yaparak başlayayım, Shakespeare Müslüman değildir ve adı “Şeyh Pir” anlamına gelmez. Bu, memleketi her gün trolleyen haberlerden biridir. Son dilimiz de sözde memleket meselelerimiz kadar troll. Ayrıca ezoterik diller arasında benim ikinci favorim.

Eğer tiyatro yazarı olmak isterken aile veya çevre zorlamasıyla yazılımcı olduysanız bu dil tam size göre. Şef dilinde programı nasıl yemek tarifi verir gibi yazıyorsanız bu dilde de tiyatro metni gibi yazmalısınız. Bu dilde değişkenler yerine oyuncularınız, yığın yerine sahneniz var. Oyuncularınız sahneye girer, repliklerini söyler (çıktı verir), hareketlerini (işlemler) yapar ve sahneden çıkar. Normal bir programda fonksiyonlar tanımlar, gerektikçe onları çağırırsınız. Jon Åslund ve Karl Hasselström bu dilde ise fonksiyonlar yerine sahneleriniz vardır.

Kaynakça

  1. http://www.chip.com.tr
  2. https://tr.wikipedia.org
  3. https://esolangs.org
  4. http://torso.me/chicken

Yazar: Sadık Efe Sarıtunalı

Bilgisayarla fazla ilgilenir. Boş zamanlarında ise çizgi roman okur. Bir gram çizim yeteneği olmadığı için çuvalladığı çizgi romanlarından sonra en büyük hayali kendine bir çizer bulup çizgi roman yazarı olmak. En büyük tutkusu ise bilimkurgu.

Bir Cevap Yazın

Bilimkurgu Kulübü sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya Devam Edin