Commodore sayı 15, sayfa 8

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 8

bölümleri içersin: Soyadı, Adı, Doğum tarihi, Posta kodu, Yer, Sokak, ilgilinin devamlı mı, geçici mi çalıştığı ve devamlı statüde ise, ücreti.

Böylece bilgisayarın başına geçtiğimi ve programı yazdığımı düşünün. Programı yazma, yanlış aramalarla ve düzeltimlerle birlikte, yaklaşık iki saatimi alıyor. Daha önceden hiçbir taslak yapmıyorum ama böyle bir lüksü ancak küçük programlarda ve zamandan tasarruf etmek amacıyla kendime tanıyabilirim. İşte şimdiden BASIC'in temel özelliklerinden biriyle tanışmış oluyoruz: Bu sevimli çevirici-dilde olduğu gibi, bu kadar kısa bir süre içinde hatasız ve kendi gereksinmelerine uyarlanmış küçük bir program herhalde başka hiçbir programlama diliyle yazılamaz. Öte yandan, programın kuruluşunun bir ba-

ayatta hiçbir

şeyin ideali olmadığı gibi, bilgisayar dillerinin de ideali yok. Seçilecek dil, yapılacak işe, beklentilere, hattâ zevke bağlı.

kışta kavranamamasından doğan tehlikenin bu denli büyük olduğu bir başka programlama dili de yoktur. Bu noktada ona en çok yaklaşan diller Assembler ve Forth ve C gibi, Assembler benzeri dillerdir.

Pascal hayranı olan bir mesai arkadaşım bu programı önce Pascal diliyle yazdı. Her iki mini-programı karşılaştırdığınızda, iki şey hemen gözünüze çarpacaktır kuşkusuz: Pascal versiyonu 1) çok daha uzundur, 2) bir bakışta çok daha kolay kavranabilir.

Pascal'ı güçlü kılan özelliklerden biri -ki bunu herhalde bilirsiniz- onun “yapısallaştırma” yetisidir. Bu program-yapısı daha dökümde, yani programın simgesel ifadesinde apaçık görülür. Bu sayede, daha sonra yapılan düzeltimlere ve katkılara kolaylık sağlanmış olmaktadır. Böylece, karmaşık tarzda programlar da okunabilirliklerini korumuş olurlar. Ayrıca, Pascal'ın pedagojik etkisini de küçümsememek gerekir: Pascal, dakikliğiyle ve her değişkenin kullanımdan önce tam olarak açıklanmasını şart koşmasıyla, programcıyı disipline ve özene zorlar. Peki “yapısallaştırma” uygulamada ne anlama gelmektedir? Bir gün şöyle bir deney yapmak zahmetine katlanmıştım: İçlerinde belli bir değerin hesaplandığı program satırlarını, yabancısı olduğum bir BASIC programında aramaya çalışıyordum. Bir süre geçtikten sonra üzülerek gördüm ki, satırlar programın tümüne dağılmışlardı. Buna GOTO ve GOSUB komutları yol açmıştı. Gerçi GOTO komutu Pascal'da da var, ama orada pek makbul sayılmıyor ve birçok durumda da zaten gereksiz. Bunlar orada bloklar halinde çalışırlar ve bloklar içindeyse gerçekten birbirlerine ait olanlar bir araya getirilmişlerdir. Bu tür bloklar ya yordamlar (procedure) ve fonksiyonlardır (bunları “adları olan alt-programlar” olarak tanımlamak mümkündür), ya da bir “begin” komutuyla başlayan ve bir “end” komutuyla sona eren başka program birimleridir. Profesyonel bir Pascal-programının oldukça tuhaf bir görünümü vardır. Programın ilk %90'ı sadece tanımlar içerir; değişkene, yordamlara ve fonksiyonlara ilişkin tanımlar... Asıl program ise, içlerinde bu yordamların harekete geçirildiği birkaç satırdan oluşmaktadır. Böylelikle, programın okunmasına yüksek bir düzeyden -ana program düzeyinden-

Sonuç bu kadar büyük olmalı...

başlanabilmektedir. Daha sonra da ve ancak tedrici olarak programın diğer bölümlerine nüfuz edilebilmektedir. Tabii bunun tersi bir yöntem de geçerlidir: Programlamada ilkin programın kaba bir taslağıyla işe başlanmakta ve programa yavaş yavaş incelik kazandırılmaktadır. Buna “Top-Down” yöntemi denilmektedir. Adından da anlaşılacağı üzere, bu yukardan aşağıya doğru uygulanan bir yöntemdir. Ama “yapısallaştırma” sadece program yapısıyla sınırlı olmayıp bütün veri tiplerine yayılabilir. Böylece Pascal, BASIC'de bulunan verilerin ötesine geçmenin sözkonusu olduğu her yerde uygun bir programlama dili olarak sunar kendini bize. Örneğin doğum tarihi için bunu söyleyebiliriz: BASIC'de doğum tarihini ya üç sayıya ayırmak, ya da bu tarihi sözkonusu üç sayının kendisinden güçlükle çıkarıldığı bir karakter zinciri olarak işlemek zorunluğu vardır. Pascal'da ise üç rakamdan oluşan “Tarih” adlı yeni bir veri tipini tanımlamaktan başka bir şey yapmaya gerek yoktur. Bu arada, anılan üç rakamdan her birinin belli sınırlamalara tâbii olduğunu belirtmek gerekir. Böylece, doğum tarihi daha anlaşılır olmakta ve daha kolay okunabilmektedir. Bu sayede ayrıca, programdaki bazı işlemler daha kısalmakta ve hızlanmaktadır. Ele aldığımız örnekteki veri yığını da böylelikle temel veri tiplerinin bir araya getirilmesiyle oluşmuş bulunuyor: Tam sayılar, ondalık sayılar (REAL), karakterler (CHAR), karakter zincirleri (STRING) ve mantıksal değişkenler (BOOLEAN). Bunların dışında başka her şeyi kendi gereksinmelerinize göre ve kendi kendinize oluşturmanız mümkündür. Ama ben BASIC-sever bir kişi olarak Pascal'ın yolaçtığı güçlükleri düşünmeden edemiyorum. Bu dil pek çok alanda fazla muğlak geliyor bana. Kendi BASIC programlarımı zengin ve anlaşılır açıklamalar sayesinde her zaman okuyabiliyorum. Nasıl bir disiplin uygulanması gerektiğini de, bana dikte ettirilmesindense, kendi

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