INTERCAL programlama dili
Intercal, programlama dillerinin tarihinde önemli bir yere sahip olan bir espri dilidir. Programcılara alıştıkları tüm kuralları unutturan ve onları zorlayan bir dildir. Ancak aynı zamanda eğlenceli ve ilginç bir dildir.
Bugün size çok ilginç bir programlama dili olan Intercal'den bahsedeceğim. Intercal, 1972 yılında Princeton Üniversitesi'nde James Lyon ve Don Woods tarafından tasarlanmış bir espri dili. Adı "Compiler Language With No Pronounceable Acronym"ın kısaltması olan Intercal, programcıların alışık olduğu her türlü mantığı ve kuralları altüst eden bir dil. Örneğin, Intercal'de değişkenlerin isimleri tek ve çift tırnak işaretleriyle başlar ve biter. Yani "A" ve 'A' farklı değişkenlerdir. Ayrıca, Intercal'de aritmetik işlemler için kullanılan operatörler şunlardır: ⊕ (xor), ∨ (or), ∧ (and), ↓ (nand). Bu operatörlerin hepsi ikili sayılar üzerinde çalışır ve sonuç da ikili sayı olarak verilir. Örneğin, 3 ⊕ 5 = 6'dır.
Intercal'de program yazmak için çok dikkatli olmak gerekir, çünkü dilin tasarımcıları programcıların hayatını zorlaştırmak için birçok tuhaf özellik eklemişlerdir. Mesela, Intercal'de her 1000 satırda bir PLEASE (lütfen) yazmak zorundasınız. Eğer PLEASE yazmazsanız, programınız çalışmaz. Ama PLEASE çok fazla yazarsanız da programınız çalışmaz, çünkü dilin tasarımcıları programcıların çok yaltaklanmasını istememişlerdir. PLEASE'in ideal kullanım oranı %5 ile %20 arasındadır. Ayrıca, Intercal'de hata mesajları da çok anlaşılır değildir. Örneğin, eğer bir değişkenin değerini yanlışlıkla silerseniz, program size şöyle der: "YOU CAN'T HAVE YOUR CAKE AND EAT IT TOO" (hem karnınızı doyuracaksınız hem pastanız duracak).
Intercal'in en ilginç özelliklerinden biri de COME FROM (nereden gel) komutudur. Bu komut, programın akışını belirli bir satıra yönlendirir. Yani GOTO (git) komutunun tersidir. Örneğin, şöyle bir kod yazarsanız:
DO ,1 ← #13
PLEASE DO ,1 SUB #1 ← #238
DO ,1 SUB #2 ← #108
DO ,1 SUB #3 ← #112
PLEASE DO ,1 SUB #4 ← #0
DO ,1 SUB #5 ← #64
PLEASE DO ,1 SUB #6 ← #194
DO ,1 SUB #7 ← #48
PLEASE READ OUT ,1
PLEASE GIVE UP
Programınız şu çıktıyı verir:
HELLO WORLD
Bu kodda, ilk satırda 13 baytlık bir değişken tanımlanır ve sonraki satırlarda bu değişkenin her baytına ASCII kodlarıyla "HELLO WORLD" yazılır. Sonra bu değişken ekrana yazdırılır ve program sonlanır. Ama eğer kodun sonuna şöyle bir satır eklerseniz:
COME FROM 11
Programınız sonsuz bir döngüye girer ve ekrana sürekli "HELLO WORLD" yazar. Çünkü bu satır, programın akışını 11. satıra, yani ekrana yazdırma komutuna yönlendirir. Bu yüzden, Intercal'de COME FROM komutunu kullanmak çok tehlikelidir ve programınızın mantığını bozabilir.
Intercal, programlama dilleri arasında çok özel bir yere sahip olan bir dildir. Hem çok eğlenceli hem de çok zorlayıcı bir dil olan Intercal, programcıların yaratıcılığını ve sabrını test eder. Eğer siz de Intercal öğrenmek isterseniz, dilin resmi web sitesi olan http://www.catb.org/~esr/intercal/ adresini ziyaret edebilirsiniz. Orada dilin tarihçesi, sözdizimi, örnekleri ve kaynakları bulabilirsiniz. Ama unutmayın, Intercal ile program yazarken PLEASE çok dikkatli olun!
Intercal'i tanıdığınıza göre, sizce bu dil gerçekten eğlenceli mi yoksa tam bir kabus mu? Yorumlarınızı bekliyorum.