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 biriy- le tanışmış oluyoruz: Bu sevimli çevi- rici-dilde olduğu gibi, bu kadar kısa bir süre içinde hatasız ve kendi gerek- sinmelerine uyarlanmış küçük bir program herhalde başka hiçbir prog- ramlama diliyle yazılamaz. Öte yan- dan, 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 teh- likenin bu denli büyük olduğu bir başka programlama dili de yoktur. Bu noktada ona en çok yaklaşan dil- ler Assembler ve Forth ve C gibi, As- sembler benzeri dillerdir. Pascal hayranı olan bir mesai ar- kadaşı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: Pas- cal versiyonu 1) çok daha uzundur, 2) bir bakışta çok daha kolay kavra- nabilir. Pascal'ı güçlü kılan özelliklerden biri -ki bunu herhalde bilirsiniz- onun “yapısallaştırma”' yetisidir. Bu prog- ram-yapısı daha dökümde, yani prog- ramı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, kar- maşık tarzda programlar da okuna- bilirliklerini korumuş olurlar. Ayrı- 8 ca, Pascal'ın pedagojik etkisini de küçümsememek gerekir: Pascal, da- kikliğiyle ve her değişkenin kullanım- dan önce tam olarak açıklanmasını şart koşmasıyla, programcıyı disipli- ne ve özene zorlar. Peki “yapısallaştırma” uygulama- da 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ör- düm ki, satırlar programın tümüne dağılmışlardı. Buna GOÖOTO ve GO- SUB 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ışır- lar ve bloklar içindeyse gerçekten bir- birlerine ait olanlar bir araya getiril- mişlerdir. Bu tür bloklar ya yordam- lar (procedure) ve fonksiyonlardır (bunları “adları olan alt-program- lar” olarak tanımlamak mümkün- dür), ya da bir “*begin” komutuyla başlayan ve bir “end” komutuyla so- na eren başka program birimleridir. Profesyonel bir Pascal-programı- nın oldukça tuhaf bir görünümü var- dır. Programın ilk Yo 90'ı sadece ta- nımlar içerir; değişkene, yordamlara ve fonksiyonlara ilişkin tanımlar... Asıl program ise, içlerinde bu yor- damları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- Commodore 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 edilebilmekte- dir. 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 denilmekte- dir. Adından da anlaşılacağı üzere, bu yukardan aşağıya doğru uygula- nan 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 üç sa- yıya ayırmak, ya da bu tarihi sözko- nusu üç sayının kendisinden güçlük- le çıkarıldığı bir karakter zinciri ola- rak işlemek zorunluğu vardır. Pas- cal'da ise üç rakamdan oluşan “Ta- rih” adlı yeni bir veri tipini tanımla- maktan başka bir şey yapmaya gerek yoktur. Bu arada, anılan üç rakam- dan her birinin belli sınırlamalara tâ- bii olduğunu belirtmek gerekir. Böy- lece, doğum tarihi daha anlaşılır ol- makta ve daha kolay okunabilmek- tedir. Bu sayede ayrıca, programda- ki 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ş bulunu- yor: Tam sayılar (IİNTEGER), onda-