Commodore sayı 15, sayfa 9

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 9

sen de bir dil düşün

bilgisayarla

yapılmasını istediğimiz işin niteliği kadar, çalışma tarzımız da dil seçiminde etkili oluyor.

dil belirlemeyi tercih ediyorum. Ayrıca, Pascal'daki tipler zorunluluğunun sıkılığı kimi zaman gerçekten eziyetli oluyor. Sonuç olarak bir sayının INTEGER mi (tam sayı) yoksa REAL mi (ondalık sayı) olduğunu bazen bizzat bilgisayar belirlemelidir. Hem zaten o bunu benden daha iyi yapabilir. Tiplerin örneğimizdeki gibi güzelce bildirilmiş olmasına gelince, eğer bu bana bir avantaj sağlamıyor-

İşte buldum! Rekürsif bir sarmal çizeceğim.

sa ne yararı vardır bu bildirimin? Çünkü belirlenen sınırlar dışında bilgisayara veri aktarılması gene de mümkündür ve Pascal hiçbir hatayı bildirmemektedir. Yalnızca Pascal derleyicisi (Compiler) bu konuda bir avantaj sağlayabiliyor; çünkü bu sayede kendi depo alanı düzene sokulabilmektedir.

LOGO'NUN BÜYÜK GÜCÜ: RECURSION Bir keresinde bizim yazı kurulumuzda -başlangıçta çocuklar için geliştirilmiş- LOGO programlama diliyle ilgili olarak şiddetli bir tartışma çıkmıştı. Taraflardan biri LOGO'nun bütünüyle BASIC'le ya da Pascal'la kıyaslanabileceğini, dolayısıyla da LOGO ile yararlı programlar yapılabileceğini öne sürüyordu. Öbür grup ise hâlâ “çocuksu” olduğunu ve bu yolla -güzel grafik çizimler dışında- aklı başında hiçbir şey yapılamayacağını iddia ediyordu. Bu tartışmada herhangi bir çözüme ulaşılamadı. Biz de örnek programımızı LOGO dilinde yazmaktan kaçındık. Giriş/Çıkış rutinlerini ve veri yönetimlerini programlamak çok zahmetli bir işti. Çünkü bu dilin gücü, ona kız kardeşi LISP'ten (“yapay zekâ” için öngörülen programlama dili) miras kalan bir özellik olan “recursion”dan kaynaklanmaktaydı. (Recursion Pascal'da da vardır.) Bir ağaç resmi çizmek istediğinizi düşünün. Önce 10 cm. uzunluğunda bir cetvel alın ve bir çizgi çekin. Daha sonra cetveli, diyelim yarı yarıya, kısa tutun, biraz döndürün ve işleme baştan başlayın. Bu işlem, bizim herhangi bir yerde bir sona ulaşıncaya değin gitgide küçülen değerlerle sürekli olarak tekrarlanmalıdır. (Çizimin nerede son bulacağını tabii sizin yerleştirmeniz gerekiyor programa.) Gerçi şimdiden recursion'un özüne değin (aynı olayın sürekli tekrarlanması) bir fikir sahibi olduğunuz söylenebilir, ama tek başına bu kadar bilgi elbette yeterli değildir. BASIC'deki her FOR-NEXT de bunu pekâlâ yapabilir. Recursion'un önemli bir özelliği şudur ki, bilgisayara iletilen bir komut hemen uygulanamamakta, aynı şemaya göre bir dizi alt-komutun çözülmüş olması gerekmektedir. Bunu somutlaştırmak için şöyle bir durumu gözünüzün önüne getirin: Bir dostunuz size geliyor ve bir bilgisayar edinmek istediğini bildiriyor. Ama amatör telsizci olan dostunuz bu hobisinden dolayı mutlaka özel bir program arzu ettiğini de sözlerine ekliyor ve size bu konuda kendisine bir tavsiyede bulunup bulunamayacağınızı soruyor. Siz herhangi bir tavsiyede bulunamıyorsunuz. Bununla birlikte, sizin de bilgisayar ticareti yapan bir tanıdığınız vardır ve bu kişiye amatör telsizciler için özel programı olan bir bilgisayar bilip bilmediğini soruyorsunuz. Ama o da yardımcı olamıyor bu konuda, ancak onun da danışacağı yetkili birisi vardır... vb. En sonunda bu konuda bilgi sahibi olan birini bulmak mümkün oluyor. Bu kişi doğrudan kendisine

Klavyeyle gezinmek için ← ve → tuşları.