Bu sayfadaki yazılar
Sayfanın metni
Sayfa 64
WHİLE yapısı
(WHİLE koşulu DO
ENDWHİLE )
Komut listesi
REPEAT Yapısı
REPEAT
UNTİL koşulu
Komut listesi LOOP yapısı LOOP —( ENDLOOP Komut listesi
EXİT WHEN koşulu ram açıkça görülebilen modüllere ayrılmış olur. Bunlar ileride ana programda hiçbir değişiklik gerektirmeksizin kendi içlerinde değişiklikler yapılmasına olanak sağlarlar. Prosedürlere değerler aktarılabilir: Bu da BASIC programcısının hiç tanımadığı bir olgudur. İyi, BASIC'te programcı ana programda kullanılmış olan değişkenlerle çalışır. Peki, değişkenin değiştirilmemesi gerektiğinde ne yapar? Bu durumda COMAL, değişkenlerin kalize edilmesi olanağını verir. Programcı, bir değişkenin bir prosedür içinde, ana programın içinde ya da yalnızca tek bir alt programın içinde erişilir olup olmadığını belirleyebilir. Böylece doğabilecek bir isim karmaşası baştan engellenmiş ve programın tüm kısımlarına bakabilme olanağı da korunmuş olur. COMAL, bu prosedürleri diskette depolayabilir, böylece programın uzunluğu yalnızca disket kapasitesiyle sınırlı hale gelir. Fonksiyonlar, prosedürlerle akraba sayılabilirler. Bunlar ek olarak değerleri geri verme olanağı da sağlarlar. Bir fonksiyonu çağırıp buna bir değer aktarabilir, bunu işleyebilir ve bir sonuç elde edebilirsiniz. Böylece bir fonksiyon bir değişkene bağlanabilir. Açımlamalar biraz karmaşık olan bu konuyu daha kolay anlaşılır hale getirebilir. COMAL dili, C-64'ün verimlilik düzeyini çok aşmayı sağlayan bazı başka komutlar da içerir. Grafik ve ses, COMAL'ın kendine özgü komutlarının yardımıyla sorunsuz bir biçimde yazmakta olduğunuz programa sokulabilir. Grafik alanında COMAL'ın yeteneklerini ölçebilmek için Resim 2 bir fikir verebilmektedir. Burada makine dilinin herhangi bir katkısı yoktur. Ama COMAL, hemen tüm diğer dillerde olduğu gibi makine rutinlerine eklenme olanağı da sağlamaktadır. Tüm bu olanakların yanı sıra dosya yönetimi ve Floppy erişimi için kapsamlı komutlar içeriyor olması, COMAL'da yazılmış kapsamlı programların herhangi bir engelle karşılaşmamasını sağlıyor. COMAL hakkında anlatılanlardan etkilendiyseniz, kısa sürede bir COMAL disketi ya da kartuşu edinmeye çalışın.
Resim 1: Önemli Comal yapılarının yazım diyagramları
PASCAL
Gezimize devam edip PASCAL'a geliyoruz. Bu dil COMAL'a örnek olmuş. Aralarındaki en önemli fark ise, dilin türünden kaynaklanıyor. Gerek COMAL gerekse BASIC'in tümüyle çevirici diller olmalarına karşın, PASCAL yalnızca karşılık gelen bir derleyiciyle birlikte kullanılabiliyor. Bunu zorunlu kılan, tüm derleyici dillerde ortak olan bir özellik: Değişkenlerin programın başında tanımlanmaları zorunlu. Hepiniz bunu C-64 BASIC'inden tanıyorsunuz. Bu durumda programın içinde bir yerde ortaya çıkan bir değişkeni çevirici önceden tanıyor olacaktır. Ayrıca hemen bu değişkenin türünü de (sayısal ya da harfsayısal) belirleyecektir. Çevirici program olarak daima “birlikte işlediğinden”', bir değişken için gerekli bellek alanı onun ilk ortaya çıkışında ayrılmaktadır. Derleyici, bir PASCAL programından tümüyle kendi başına işleyebilen bir makine dili programı üretir. Bu sırada değişkenler için gerekli yeri sağlayan bir çevirici sözkonusu değildir. Dolayısıyla derleyicinin baştan hangi değişkenlerin kullanılacağını, bunların uzunluklarını bilmesi ve derleme sırasında gerekli alanı buna göre ayarlaması gerekir. Bu nedenle PAS-CAL'de değişkenler programın başlangıcında deklare edilir. Zorunlu olarak gereken komutlar bu sırada koyu olarak yazılırlar. BASIC'ten tanıdığımız üç farklı değişken türü vardır: Integer (tamsayı), Floating Point (kayar nokta) ve String (yazısal dizi). Bugün piyasada bulunabilen PASCAL versiyonları, beşer tamsayı ve kayar noktalı sayı türleri içeriyorlar. Bunlara bir de yalnızca “doğru” ve “yanlış” olarak denetlenen Boole değişkenleri ekleniyor. Bunlar genellikle döngü koşullarında sık kullanılıyor. Herhalde en zor kullanılan tür, göstergeyle sunuluyor. Bu gösterge değişkeni, örneğin sizin verdiğiniz bir değeri içermez. Çoğu zaman burada değerin bellekte bulunduğu yerin başlangıç adresi gizlidir. Resim 3, bu soyut süreci açıklamayı amaçlamaktadır. Bir başka ilginç veri türü ise RECORD (kayıt) olarak adlandırılır. Bu tür, özellikle dosya yönetiminde kullanılır. Buna ufak bir örneği Resim 4'te görebilirsiniz. Tüm RECORD kendine özgü bir ada sahiptir. Bunun içindeki ögeler, yine, RECORD'la ayrılamaz biçimde bağlı olan bağımsız değişkenler oluştururlar. Bunlar yalnızca RECORD'un adıyla birlikte anılabilirler. “isim” değişkenini ““ad- RECORD'unda işlemek isterseniz, programda şu tanımlamayı yapmanın gerekir: Adres-isim Bu karmaşık yazı biçiminden kurtulunabilmesi için, PASCAL'da DO-WITH komutu vardır. Bu yolla RE-CORD adının verilmesi gereksiz hale gelir. Bu veri türü en çok dosya yönetimi alanında kullanılır. Çünkü komple veri cümlelerinin işlenmesini çok kolaylaştırır. Tabii ki PASCAL, dosyaların işlenmesi için gerekli tüm komutlara sahiptir. Henüz var olmayan, hızlı bir biçimde kendine özgü prosedür ya da fonksiyon olarak programlanmasıdır. Prensipte bunlar da aynen COMAL'daki gibi çalışır. Ama parametre aktarımı sırasında prosedür ya da fonksiyon için değişkenlerin yeniden deklare edilmesi zorunludur. Bir prosedür içindeki değişkenler daima yerel olarak geçerlidir. Derleyicinin verimiyle bağlantılı olarak, tüm program için kullanılabilecek daha global değişkenlerin deklare edilmesi olanağı bulunabilir. Böylece PASCAL'in önemli fonksiyonlarını sıralamış olduk. Derleyiciyi satın alırken dikkat etmeniz gereken konu, verimliliğin derleyiciden derleyiciye değişebilirliğidir. Bu durum özellikle C-64/C 128 için grafik ve ses yeteneklerinin kullanılabilmesi açısından önemlidir.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 65
Resim 2. Comal, C-64'ün tüm grafik özelliklerini kullanır.
Modern: C
Genç bir dil son zamanlarda PASCAL'i geçmeye çalışıyor: C. Bu dil, aslında işletim sistemi Unix olan büyük makineler için geliştirildi. Ama ev bilgisayarları ve kişisel bilgisayarlarda da yaygın bir ilgi gördü. AMIGA ya da Atari ST gibi bilgisayarlarda işletim sistemleri zaten C ile yazılmış durumda. C'nin komut sayısının düşük olması, işletmek için küçük bir makine dili gövdenin yeterli olmasına olanak veriyor. Aslında tüm C derleyicileri 28 ana komutun dışında da komutlar içerirler. Ama bu ek komutlar aslında C komut seti yardımıyla oluşturulmuş fonksiyonlardan başka bir şey değildirler. Bilgisayar basınında C, daima “makineye yakın” bir dil olması nedeniyle övgü almaktadır. Tabii bu durum işletim sistemi C ile yazılmış makineler için söz konusudur. Burada tüm rutinler önceden kullanıma hazır vaziyettedir. Program-
“a” değişkeni, “München” metnine ilişkin bir göstergedir.
0300H $ 0300H'nın içeriği Bİ ü KA 2 im & c h
0305H
Resim 3. Göstergeler, yalnızca adresleri içeren değişkenlerdir.
ramcı her fonksiyonla işletim sistemine erişebilmektedir. Buna ek olarak tüm C derleyicilerinde tüm önemli fonksiyonları içeren kapsamlı kütüphaneler yer almaktadır. Artık yalnızca PASCAL konusunda anlattığımız gösterge tekniğini kullanır hale gelmeniz yeterlidir. Aksi takdirde C ile uğraşırken çok kısa sürede pes edebilirsiniz. C'de bir derleyici dil olduğundan, değişkenlerin daima, programların ya da fonksiyonların başında tanımlanmaları gerekmektedir. Tabii C'de de, COMAL'de ve PASCAL'de olduğu gibi, tüm yapı komutları mevcuttur. C'de bir prensip daha var: Programcı istediği her şeyi yapabilir. Ama bu durum, olağanüstü disipline edilmiş bir programlama stilini zorlar, derleyici yalnızca syntax (yazım) hatalarını fark eder. Hatalı harf bileşimleri, döngülerde hatalı üst sayılar ya da alan taşmaları çoğu derleyiciyi pek ilgilendirmez. Bu durumlarda hatanın aranması bir işkenceye dönüşebilir. C-128 kullanılırken -C-64 için henüz bir C derleyicisi yoktur- C derleyicisi yalnızca dilin öğrenilmesine yarar. Daha büyük program paketlerinin oluşturulmasında C dili C-128'e pek uygun değildir. Ayrıca C-128'de C'nin hızı BASIC'inkinden pek fazla değildir. Ama mutlaka C diline girmek isteyen bir kullanıcı, biraz daha paradan çıkmayı göze alıp farklı bir bilgisayar satın almayı tercih etmelidir.
BASIC'in işi bitti mi?
Buraya kadar anlattıklarımıza göre BASIC çoktan unutulmuş olmalıydı. Yapılandırılmış programlama olgusu, C-64 BASIC'e tümüyle yabancıdır. C-128'de prosedürleri ve fonksiyonları tanımaz. Bütün bunların BASIC'i turnuvadan elemeye yeterli kusurlar olduğu zannına kapılabilirsiniz. Fakat bir şeyi kesinlikle unutmamak gerekiyor: BASIC eskiden olduğu gibi şimdi de en çok kullanılan dil. Bir defa BASIC, makinenin içinde yer almış durumda. Yani makineyi açtığınız anda BASIC'e erişiyorsunuz. BASIC'le çok kapsamlı programlar yapmayı başarmış olan her kullanıcı, bu iş sırasında mutlaka sık sık sınırlara çarpmıştır. İşte bu noktada PASCAL ve COMAL gerçek birer alternatif oluşturmaktadırlar. Son derece kapsamlı görevler kolayca ve makine diline gerek duyulmaksızın yerine getirilebilmektedir. Geriye kalan tek sorun mali konudadır, bu da her kullanıcının kendisinin çözmesi gereken bir sorundur.