Commodore sayı 14, sayfa 16

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 16

Yapılandırılmış Değil,

Sadeleştirilmiş

“Yapılandırılmış programlama” terimini ilk duyduğumda, pek de matah bir şeye benzemediğine karar vermiştim. Yapılandırılmış terimi aklıma kurallar, karmaşık matematik kavramları ve Boole mantığı üzerine akademik çalışmalar getiriyordu. Cehaletimin paniği her zamanki gibi yersiz çıktı. Tamam, Comal üst düzey bir yapılandırılmış dil, fakat üst düzey yalnızca tek bir anahtar sözcükle pek çok iş görebileceğiniz anlamına geliyor; yapılandırılmışsa sadeleştirilmiş demek. Comal elinizdeki işi çok sayıda küçük küçük işe, PROC'lara ayırmanıza olanak vererek işinizi sadeleştiriyor. PROC'ları büyük işin gerçekleştirilmesi için gereken sırada çağırıyorsunuz. Comal'in yapılandırılmış programlaması bundan ibaret. PROC'ların oluşumunu daha iyi anlamak için, bir örneğe bakalım. Bu PROC'u ekran, çerçeve veya renkleri değiştirmek isteyince çağırabilirsiniz:

proc renk'değiştir

#4 çerçeve 7 // sarı çerçeve arkaplan 14 // açık yeşil ekran ((pencolor?)) // siyah cursor endproc renk'değiştir

REM'leri sırf netlik sağlamak için ekledim; programı yavaşlatmaları söz- konusu değil. PROC renk'değiştir'i her çağırdığınızda o üç renk değişiyor, sonra program devam ediyor. Basic'- teyse şöyle bir şey olacaktı:

6000 POKE53280,7:POKE53281,14: PRINT ““|black)”,:RETURN

Comal, Basic programcısının uğraşmak zorunda kaldığı Poke'ler ve Peek'lerin çoğunu elimine etmekte. Her prosedür, PROC anahtar sözcüğü ve kendi ismiyle başlıyor. PROC'un son satırında da ENDPROC deniyor. Bu bir yapı. Başı ve sonu var. Ayrıca, dikkat ettiyseniz, başla son arasındaki satırları bir hane içeriden yazılmış. Bu da netlik için ve Comal bunu kendiliğinden yapıyor. Comal dönüşlü (recursive) bir dil. Yani kısacası PROC'lar kendi kendilerini çağırabiliyorlar.

Programcılara

Tatlı Hayat

Comal 0.14 cin gibi. Sizi alan o ufak tefek işlerden büyük ölçüde kurtarıp, kodun mantığı üzerinde yoğunlaşmanıza imkân sağlıyor. Basic'te olmayıp da yüzlerce Basic uzantısıyla getirilen basit şeyler Comal'in iç yapısında yer almış. Satırların otomatik olarak numaralandırılması, klavye hatası ihtimalini hatırı sayılır ölçüde azaltıyor; satırlar tek tek ya da dizi halinde çıkarılabiliyor ve

Basic usulü tam ekran düzeltme (editing) imkânı, satırların değiştirilmesini kolaylaştırıyor. Daha önce de söylediğim gibi, Comal girdiğiniz her kod satırını kontrol eder. Eğer sentaks hatası çıkarsa, ertesi satırda ekranda İngilizce hatası ibaresi belirir. Cursor'u hatalı anahtar sözcüğün tam üzerine gelir, gerekli düzeltmeyi yaparsınız. Düzeltme yapılınca da, hata mesajı silinir ve üzerinde belirmiş olduğu metin tekrar ortaya çıkar. Yapı sorunları (atlanmış bir ENDPROC, ENDCASE vb.) programı çalıştırdığınızda ortaya çıkar. Bu da ikinci kontroldür. Comal, program çalıştığı sırada da performansını denetlemeyi sürdürür ve mesela “selfmodification” ya da “out of range” bir değer gibi bir hata buldukça haber verir.

Karakter sayısı 78'e kadar çıkabilen, her bir hanesi anlamlı uzun değişken isimleri, programın anlaşılır kalmasını sağlamaktadır. Tüm değişkenler tek bir byte'da simgelendiğinden, bu uzun isimler hafızada gereksiz yer de kaplamazlar. Döküntüleri toplamak, Comal'le birlikte tarihe karışmıştır. Tüm değişkenler, array'ler ve karakter dizileri, korunan tablolarda depolanırlar. Fakat, bunun için, her diziyi kullanmadan önce DIM etmeniz ve ne uzunlukta olacağını önceden belirtmeniz gereklidir. Mesela şöyle: dim filename$ of 16

Gerçek ve tam sayı değişkenlerde bu işlem gerekli değildir. Bir diziyi programın herhangi bir yerinde DIM edebilirsiniz; fakat, netlik açısından, başlangıçta gruplandırılmaları yerinde olacaktır. Diziler, değişkenler ve array'ler genel (yani tüm PROC'lar için geçerli) olabileceği gibi, mevzi, yani yalnızca kapalı PROC'lar için geçerli de olabilir. Dizileri güçlü anahtar sözcük In'le arayabilirsiniz. Örneğin, name$ dizisinde “Jim” harflerinin bulunup bulunmadığını kontrol eder, bulunca da yalnızca dizinin bir bölümünün üstüne yazmak yoluyla onun yerine Jan'ı geçirebilirsiniz. Basic'te bir hayli karmaşık olan ve bir sürü kod byte'ı gerektiren bu iki işlem, Comal'de tek bir anahtar sözcükle gerçekleştirilebilmektedir. Benchmarklar gösteriyor ki, Comal dizi arama işleminde Basic'ten 79 kat daha hızlı. Comal 0.14, yerine getirmekte olduğu işleve bağlı olarak, Basic'le makine dili arasında bir hızla işlemekte. Comal 2.0'sa tüm operasyonlarda makine diline çok yakın bir hız gösteriyor. Çevresel gereçlerle uğraşmak Basic'in en tatsız işlerindendir. Comal bunun zorluklarını da büyük ölçüde azaltıyor. Disk sürücünün rehberini görmek için, CAT anahtar sözcüğüne başvuruyorsunuz. Rehber ekranda yavaş yavaş geçerken, hafızadaki program silinmiyor. Programları printer'da yazdırmak da kolay:

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