Amiga Dünyası sayı 13, sayfa 24

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 24

A miga'nin diğer dilleri (C, Assembler vs.) ile karşılaştırıldığında, BASIC bir hayli yavaş kalmakta. Bu sorunu ortadan kaldırmak için, bazı programcı firmalar BASIC programları en hızlı programlama dili olan makine diline çeviren derleyiciler (compiler) çıkarttılar. Şimdi bu derleyicilerin çalışma şekillerini ve örnek olarak seçtiğimiz iki-üç tanesini inceleyelim.

Cem GENCER Evet, Amiga'da BASIC dili ile çalışmış olanlar bilirler; program biraz uzamaya başladığında çalışması yavaşlar. Bunun sebebi, WorkBench ile birlikte verilen ABASIC'in compiler değil de, bir interpreter olması. Şimdi bilgisayara yabancı olanlar soracak: 'Interpreter ne demek?'. Interpreter, compiler programlama dilinin temel çalışma şeklini anlatır. Compiler'larla, program genellikle bir text editörüyle yazıldıktan sonra CLI'dan bazı komutlar kullanarak ya da ayrı bir program sayesinde makine diline çevrilirler. Bir programı compile etmek, programın uzunluğuna göre değişecektir; fakat genelde bu işlem 2-3 dakika sürer. Compiler'ların bir ufak dezavantajı varprogramı bir hayli uzatırlar ve genelde compile edilen bir programı herhangi cruncher yardımıyla sıkıştırmak mümkün değildir. Programın uzamasının sebecompiler'ın, kullanılan tüm komutların ne dili karşılıklarını programın sonualt-rutin olarak yerleştirmesidir. Fakat bazı compiler'larda bu sistem değiştirilmiştir. Örneğin HiSoft BASIC, programı compile edince diğer compiler'lara göre çok daha kısa bir dosya yaratır. Fakat bunu çalıştırabilmeniz için, HiSoft BASIC'in ana disketinde LIBS di rectory 'sinde yer alan HiSoft Basic.library dosyasını da compile edilmiş programın bulunduğu disketin LIBS directory 'sine aktarmalısınız. Bunun sebebi, bu gibi compiler'ların BASIC kontlarının makine dilinde karşılıklarının sistem library'si (sistem rutinlerinin -olunduğu alt-rutin paketi) gibi bir dosyada saklanmasıdır. Ayrıca compiler'ların pek büyük olma- Yan bir sorunu daha var: hazırladığınız dosyaları, ASCII dosya olarak compiler'a atarma gereği. Bunun anlamı, program dosyası içinde yazıcı kumanda karakterle Escape kodları) gibi, ASCII tablosunda yer almayan kodlan direkt olarak kullanamayışınızdır. Bunları, ancak DATA satırlarında sayısal karşılıkları ile tanımladıktan sonra program içinde READ komutunu kullanıp okutarak kullanırsınız. Fakat bu da bir bakıma avantajdır. PC gibi standart BASIC komutlarıyla çalışan bilgisayarda mevcut istediğiniz bir BASIC programı, Amiga'ya aktarıp doğrudan compile edebilirsiniz. Bu da, bir hayli hazır BASIC programa sahip olmanız anlamına gelmekte.

Amiga BASIC'in değişik bir huyu daha var; programlan kaydederken SAVE komutunda hiçbir takı kullanmazsanız, program dosyanız sıkıştırılarak kaydedilecektir. Bu sayede programlarınız diskette daha az yer kaplarlar; ancak bu da, compiler'lar için sorun çıkanr. Nedeni gayet açık; dosyalar sıkıştırıldığında, saf ASCII yazı dosyaları olmaktan çıkarlar. Böyle bir dosyayı yukarıda da belirttiğim gibi compiler yüklememekte ısrar edecektir. Bunun da çözümü gayet basit: Dosyayı AmigaBASIC'te yükledikten sonra diskete SAVE "<isim>",A komutu ile kaydedin.

Interpreter ise, AmigaBASIC gibi editörü de üzerinde olan ve hiçbir bekleme süreci olmadan programları yükledikten sonra doğrudan çalıştırabileceğiniz bir programdır. Burada program çalıştırıldığında, sadece programın işlenen satırı makine diline çevrilir. Bu, tabii ki büyük bir hız kaybı oluşturur. Hele bir de programda alt-rutinler ve dallanmalar (GOTO..., GOSUB..., CALL...) fazlaysa, program daha da yavaşlar. Interpreter'lara en güzel örnek, Amiga BASIC'tir. HiSoft BASIC, GFA-BASIC ve AC-BASIC ise compiler'lar arasında yer alır.

Compiler ve interpreter arasında bir bakıma büyük bir benzerlik vardır; ikisi de programın işlenmesi gereken satırını karakter karakter hafızadan okurlar ve bu karakterlerin doğruluğunu, sıralanışlarını ve özel işaretlerin yerlerini kontrol ederler. Ancak bu şartların hepsi yerine gelirse, o satır makine diline çevrilir. Interpreter, çevrilen bu satırı hemen çalıştırır; fakat compiler, makine diline çevrilen bu satın öncekilerin sonuna gelecek şekilde hafızaya atar ve bir sonraki satırın kontrollerine geçer.

Compiler ve interpreter'ların çalışma şeklini Şekil I ve Şekil II'den de anlayabilirsiniz. Ayrıca bir program satırı kontrol edilirken yapılan işlemleri, Şekil IH'teki akış diyagramında görebilirsiniz.

Gelelim inceleyeceğimiz üç compiler'a; bunlar AC-BASIC, HiSoft BASIC ve GFA-BASIC'dir. Niye bunları seçtiğimi soracak olanlara cevabım gayet basit; diğer compiler'lar ülkemize gelmediğinden, pek onlara değinmek istemiyorum. Ayrıca AMOS gibi standart BASIC dilindekilerin yanı sıra bir sürü kendi komutları olan derleyicileri de bu teste katmıyorum. Adı geçen üç programın da avantajları ve dezavantajları; bazılarının da kendi özel komutları var. Bütün bunları aşağıdaki satırlarda okuyabilirsiniz.

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