Commodore sayı 14, sayfa 15

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 15

Öğrenilmesi gayet kolay bir programlama dili olan Comal, gerek hız gerekse netlik açısından Basic'i geride bırakıyor. Bir kaplumbağası bile var. Ve ekran cinleriyle harikalar yaratıyor. Halen Comal bir Yapay Zeka dili olarak kullanılmamakla birlikte, bu yönde geliştirilme potansiyeli taşıyor.

Küçük Comal ilanı sayfanın bir köşesine sıkışmış, “Yüzyılın Oyunu”nu müjdeleyen dört renkli zevksizlik örneğinin bir kenarında neredeyse gözden kaybolmuştu. Dudaklarımda derinleşen müstehzi bir gülümsemeyle okudum küçük ilanın sıraladığı müthiş özellikleri. İlanın iddiasına göre, Comal 0.14 Basic'in tamamen yerini almak üzere tasarlanmış, üst düzey bir programlama diliydi. Hıh, dedim kendi kendime, bunları daha önce de duymuştuk! Bu Basic, Logo ve Pascal'ın en iyi yönlerinden oluşturulmuş melez bir dildir, diyordu ilan. Yalnızca 20 dolar karşılığında vaadettiği özelliklerse pek inanılacak gibi değildi. Ben de, okuduklarımın bir kelimesine bile inanmamış olarak, Comal'i ilgimi uyandıran ama sonuçta boş çıkan diğer egzantrik diller kategorisine yerleştirip konuyu kapattım.

Mutlu Keşif

Üç ay sonra posta kutumdan yerel kullanıcılar grubumun kütüphanecisi tarafından gönderilmiş bir Comal 0.14 disk kopyası çıktı. Diske iliştirilmiş mektup, bu yeni dilin üstünlüklerinden övgüyle söz ediyordu. Comal'i bilgisayarıma yükledim. Demo programlarını çalıştırdım, gördüklerimden afallamış olarak bir an durdum. Sonra büyük bir rahatlama hissiyle yeni dili öğrenmeye koyuldum. O gece, yapılandırılmış programlamanın keyfini keşfettim. C-64'ün ekran cinlerini, hi-res ekranını ve X-Y grafiklerini yönetmek için gereken tüm komutlar (yani, Commodore'un Basic 2.0'ın repertuvarına almayıp bizi Peek'lere ve Poke'lere başvurmak zorunda bıraktığı bütün o kullanışlı komutlar) dilin bizzat yapısında yer alıyordu. Üstelik, C-64'ün Comal versiyonu 0.14, yalnızca bir öğrenme diliydi. Commodore, gerçek Comal'i (versiyon 2.0'ı) bir 64K ROM kartuşu halinde yıl sonunda satışa sunmaya hazırlanıyordu. Roy Atherton'un Structured Programming With Comal'ini (Comal'le Yapılandırılmış Programlama) açıp, iki haftamı dili tanımaya adadım. Comal tam benim aradığım şeydi. Aldatıcı görüntüsüne kanıp, bunun yeni bir Logo versiyonu veya basitleştirilmiş bir Pascal veya daha da kötüsü C-64 için en yetkin Basic olduğunu düşünebilirsiniz. Bunların hepsi bir ölçüde doğru, ama eksik. Comal bu tanımları aşıyor.

Bu dil ilk olarak, on yıl önce Danimarkalı eğitimci Borge Christianson tarafından tasarlanıp yaratılmıştı. Pascal yeni başlayan bir programcı için çok karmaşık olduğundan ilk dil olarak Basic'i öğretmek durumunda kalan Christianson, Basic'in kullanım kolaylığıyla Pascal'ın yapısını birleştiren ara bir dilin eksikliğini hissediyordu. Bu eksikliği gidermek için Comal'i yarattı. Aradan geçen yıllarda Comal tanımlandı, yetkinleşti, standartlara kavuştu ve zenginleşti. Fakat işlevi hâlâ aynı: Öğrenilmesi ve öğretilmesi kolay bir ilk dil. Bu “aldatıcı dil” etiketinin ardındaysa, Basic'i yerinden edebilecek yetenekte, güçlü bir programlama aracı gizli.

Öğrenilmesi Zor mu?

Her dil başlangıçta zordur, ama hoşgörülü bir dil öğrenmenin azabını hafifletebilir. Comal kullandığım dillerin en şefkatlisi. İşletim sistemi programcının tam bir beceriksiz olduğu varsayımıyla hareket ederek her bir kod satırında sentaks hatası kontrolü yapıyor. Tek bir hatalı satır girmek mümkün değil. Ben Comal'e Basic'ten geldiğim için, bazı kötü alışkanlıkları unutup virgüllerin ve diğer noktalama işaretlerinin nereye konacağını yeni baştan öğrenmek zorunda kaldım. Şimdi geriye bakıyorum da, bu benim için hem eğlenceli hem de kazançlı bir tecrübe oldu. Eğer Comal'i ilk dil olarak seçerseniz, programcılığı ve bilgisayar donanımlarını bir arada öğrenmeniz gerekiyor. Bu da imkânsız bir şey değil: Ben Basic'i böyle öğrenmiştim. Comal'i Basic'ten ayıran çok önemli bir üstünlük, Basic'i okunmaz hale getiren şifremsi steno notasyonunu değil, İngilizceyi kullanması. Comal kodunun her satırına yalnızca tek bir komut, ya da anahtar sözcük girebiliyor. Basic'teyse, komutları iki nokta üst üstelerle birbirinden ayırarak, 80 karakterlik bir satıra sığdığı kadar komutu sıkıştırırsınız. Her ikisinden de birer örneğe bakarsak, netlikten tam neyi kastettiğim daha iyi anlaşılacak:

10 OPEN4,4:GOSUB6021:PRİNTFA4, CHR$(12): CLOSE4:0OTO 33 98

3398

Comal'deyse:

select “1p:” //printer kanalını aç

liste'diz //verileri sıraya koy sayfa //printer'a form gönder print'list //verileri printer'a gönder sayfa'no //sayfa numarasını yaz select “ds:” //printer kanalını kapat asıl menü — //iş tamam, menüye dön

“//” REM anlamına geliyor. İki dil de aynı işi gördü, ama hangisini okumak daha kolay? Tabii. Anahtar sözcüklerin ayrı ayrı satırlar halinde alt alta dizilmesi, programın akışını izlememizi mümkün kılıyor. Bir Comal programını iyi bir kitap gibi okuyabilirsiniz. Fark ettiyseniz, anahtar sözcükleri de İngilizce ve Türkçe'den fazla farklı değil. Daha ileri gitmeden itiraf edeyim: Sizi kandırdım. Yukarıdaki Comal programında select “1p:” ile select “ds:”den başka anahtar sözcük (komut) yok. Bunlar Comal'in anladığı standart anahtar sözcükler. Geri kalanlar (sayfa, asıl_menü, vb.) programcının işlevini tanımlayacak şekilde isimlendirdiği ve yalnızca bir satıra almak yoluyla işleme soktuğu prosedürlerden ibaret. Prosedürler (PROC) subroutine'lerin aynısı. Satır numarası yerine isimle çağrılıyorlar ve işleri bitince program, PROC çağrısının bir altındaki anahtar sözcüğe atlıyor. Basic, subroutine'lere ve GOTO'lara yapılan atlamalara referans olarak satır numaralarını kullanır. Comal'se atlamalar ve dallar için isimli PROC'lardan ve işlevlerden (FUNC'lardan) yararlanıyor. Comal'de satır numaraları bu sırayla işleme konulacak anahtar sözcükler ve PROC'lar listesini düzenlemekte kullanılıyor. Fakat Comal'in satır numaralarına gönderme yapmak mümkün değil. Bu yüzden, Comal program satır numaraları belirtilmez. Programın nasıl işlediğini anlamamız açısından gerekli de değildir zaten. Bu, aynı zamanda GOTO gereğini de ortadan kaldırmakta. Programınızın nereye gittiğini anlamak isterseniz PROC'lara bir göz atmanız yetiyor.

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