ana sayfa > Paket Programlar, Programlama Dilleri > Ezoterik Programlama Dilleri(Brainfuck -Shakespeare Programming Language)

Ezoterik Programlama Dilleri(Brainfuck -Shakespeare Programming Language)

Perşembe, 12 May 2011 yorum ekle yorumlara git

Bildiğimiz programlama dillerine hiç mi hiç benzemeyen programlama dillerinden biraz bahsetmek istiyorum. Ezoterik Programlama Dilleri olarak adlandırılan bu diller. Çılgınca algoritmalar içeren ,genellikle programlama dilinin sınırlarını test etmek, ilginç fikirleri denemek ve kimi zaman da sadece  bir şaka amaçlı tasarlanmıştır. Bu tür dilleri günlük hayattaki programlamaya uyun sağlaması için herhangi bir çalışma da araştırdığım kadarıyla yok. Bu diller genellikle hackerler arasında popüler.

Çok ilginç şeyler olduğuna emin olabilirsiniz bir kaçı hakkında kısa bilgiler verirken sizin için birkaç da araştırmanızı tavsiye ettiğim ezoterik programlama dili ismi vereceğim.

1. Brainfuck

İnanılmaz derecede sade bir dil tam anlamıyla programcıları eğlendirmek ve birbirleri arasında kapasitelerini zorlarcasına yarıştırmak amacıyla yazılmış bir dil. 1993 yılı cıvarında Urban Müller tarafından oluşturulan Brainfuck, oluşum amaçlarından biri olarak da en küçük derleyici ile derlenebilen bir programlama dili olmayı amaçlamıştır. Brainfuck derleyicilerinin boyutu 200 baytlara kadar düşmüştür. Brainfuck şimdi en çok desteklenen ezoterik programlama dillerinden biridir

Dil sadece bu 8 komuttan oluşuyor: > < + – . , [ ]

ayrıca bu komutların C programlama dilindeki karşılıkları şöyle gösterilebilir;

komut C karşılığı
> ++ptr;
< –ptr;
+ ++(*ptr);
–(*ptr);
. putchar(*ptr);
, *ptr=getchar();
[ while (*ptr) {
] }

Programlama dilinin ana felsefesi şöyle özetlenebilir: talimat gösterici ilk komutu başlatır ve bu işaret her komut normalde bir sonraki komuta ileri hamle yapması gerektiğini yürütülür. Program fesh olduğunda son komut geçmiş yönerge işaretçisi hareket eder.

Aşağıdaki kod ekrana “Hello World!” yazdırır.

+++++ +++++             initialize counter (cell #0) to 10

[                       use loop to set the next four cells to 70/100/30/10

> +++++ ++              add  7 to cell #1

> +++++ +++++           add 10 to cell #2

> +++                   add  3 to cell #3

> +                     add  1 to cell #4

<<<< –                  decrement counter (cell #0)

]

> ++ .                  print ‘H’

> + .                   print ‘e’

+++++ ++ .              print ‘l’

.                       print ‘l’

+++ .                   print ‘o’

> ++ .                  print ‘ ‘

<< +++++ +++++ +++++ .  print ‘W’

> .                     print ‘o’

+++ .                   print ‘r’

—– – .               print ‘l’

—– — .             print ‘d’

> + .                   print ‘!’

> .                     print ‘\n’

2. Shakespeare

Shakespeare Programming Language (SPL), Jon Åslund ve Karl Hasselström tarafından geliştirilmiş bir dildir. Önceki programlama dili Velato adında başka bir programlamadlinde olduğu gibi, bu dilin amacı da programların bir programdan daha farklı bir şey olarak görünmesi.

Shakespeare dilinde programın ilk satırı ‘title’ ile başlatılıyor.  ve açıklama olarak kullanılıyor. ‘Dramatis Personae’ bölümünde ise değişkenleri tanımlıyoruz. Her değişkenin Shakespeare yazdığı oyunlardan bir karakterin ismiyle bağdaşması dilde şart koşulmuş.

Shakespeare kodu, karakterlerin (dile göre değişkenler oluyor) etkileşime girdiği ‘Sahne’leri içeren ‘Rol’lere ayrılıyor. Her Rol ve Sahne, Romen rakamlarıyla temsil edilmek zorunda.

‘Karakterler’ (değişkenler) ‘rol’ yapmadan önce ‘sahneye’ çıkmaları gerekiyor. Bir değişkeni yani karakterleri sahneye çıkarmak için ‘Enter’ komutu kullanılıyor. Sahneyi terk etmeleri  için ise ‘Exit’ komutu kullanılıyor..

Shakespeare programlama dili ile yazılımış bir ‘Hello World’ kodunun yalnızca bir parçası:
Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.

Act I: Hamlet’s insults and flattery.
Scene I: The insulting of Romeo.
[Enter Hamlet and Romeo]
Hamlet:
You lying stupid fatherless big smelly half-witted coward! You are as
stupid as the difference between a handsome rich brave hero and thyself!
Speak your mind!
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer’s
day. You are as healthy as the difference between the sum of the
sweetest reddest rose and my father and yourself! Speak your mind!
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse. Speak your mind.
Speak your mind!

[Exit Romeo]
Scene II: The praising of Juliet.
[Enter Juliet]
Hamlet:
Thou art as sweet as the sum of the sum of Romeo and his horse and his
black cat! Speak thy mind!

İlcelemenizi önerdigim diger ezoterik programlama dilleri:

  • Chef
  • Velato
  • Omgrofl
  • Whitespace
  • Piet




  1. şimdilik yorum yok.
  1. şimdilik geri bağlantı yok