Amiga Dunyasi - Sayi 13 (Haziran 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 13 (Haziran 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 13 (Haziran 1991).pdf - Retro Dergi
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
BASIC DERLEYİCİLERİ<br />
A miga'nin diğer dilleri (C, Assembler vs.) ile karşılaştırıldığında, BASIC bir hayli yavaş kalmakta.<br />
Bu sorunu ortadan kaldırmak için, bazı programcı firmalar BASIC programları en hızlı programlama<br />
dili olan makine diline çeviren derleyiciler (compiler) çıkarttılar. Şimdi bu derleyicilerin çalışma<br />
Cem GENCER<br />
Evet, <strong>Amiga</strong>'da BASIC dili ile çalışmış<br />
olanlar bilirler; program biraz uzamaya<br />
başladığında çalışması yavaşlar. Bunun<br />
sebebi, WorkBench ile birlikte verilen<br />
ABASIC'in compiler değil de, bir<br />
interpreter olması. Şimdi bilgisayara yabancı<br />
olanlar soracak: 'Interpreter ne<br />
demek?'. Interpreter, compiler programlama<br />
dilinin temel çalışma şeklini anlatır.<br />
Compiler'larla, program genellikle bir<br />
text editörüyle yazıldıktan sonra CLI'dan<br />
bazı komutlar kullanarak ya da ayrı bir<br />
program sayesinde makine diline çevrilirler.<br />
Bir programı compile etmek, programın<br />
uzunluğuna göre değişecektir; fakat<br />
genelde bu işlem 2-3 dakika sürer.<br />
Compiler'ların bir ufak dezavantajı varprogramı<br />
bir hayli uzatırlar ve genelde<br />
compile edilen bir programı herhangi<br />
cruncher yardımıyla sıkıştırmak mümkün<br />
değildir. Programın uzamasının sebecompiler'ın,<br />
kullanılan tüm komutların<br />
ne dili karşılıklarını programın sonualt-rutin<br />
olarak yerleştirmesidir. Fakat<br />
bazı compiler'larda bu sistem değiştirilmiştir.<br />
Örneğin HiSoft BASIC, programı<br />
compile edince diğer compiler'lara göre<br />
çok daha kısa bir dosya yaratır. Fakat bunu<br />
çalıştırabilmeniz için, HiSoft<br />
BASIC'in ana disketinde LIBS<br />
di rectory 'sinde yer alan HiSoft Basic.library<br />
dosyasını da compile edilmiş programın<br />
bulunduğu disketin LIBS<br />
directory 'sine aktarmalısınız. Bunun sebebi,<br />
bu gibi compiler'ların BASIC kontlarının<br />
makine dilinde karşılıklarının<br />
sistem library'si (sistem rutinlerinin<br />
-olunduğu alt-rutin paketi) gibi bir dosyada<br />
saklanmasıdır.<br />
Ayrıca compiler'ların pek büyük olma-<br />
Yan bir sorunu daha var: hazırladığınız<br />
dosyaları, ASCII dosya olarak compiler'a<br />
atarma gereği. Bunun anlamı, program<br />
dosyası içinde yazıcı kumanda karakterle<br />
Escape kodları) gibi, ASCII tablosunda<br />
yer almayan kodlan direkt olarak kullanamayışınızdır.<br />
Bunları, ancak DATA satırlarında<br />
sayısal karşılıkları ile tanımladıktan<br />
sonra program içinde READ komutunu<br />
kullanıp okutarak kullanırsınız. Fakat<br />
bu da bir bakıma avantajdır. PC gibi standart<br />
BASIC komutlarıyla çalışan bilgisayarda<br />
mevcut istediğiniz bir BASIC<br />
programı, <strong>Amiga</strong>'ya aktarıp doğrudan<br />
compile edebilirsiniz. Bu da, bir hayli ha-<br />
şekillerini ve örnek olarak seçtiğimiz iki-üç tanesini inceleyelim.<br />
zır BASIC programa sahip olmanız anlamına<br />
gelmekte.<br />
<strong>Amiga</strong> BASIC'in değişik bir huyu daha<br />
var; programlan kaydederken SAVE komutunda<br />
hiçbir takı kullanmazsanız, program<br />
dosyanız sıkıştırılarak kaydedilecektir.<br />
Bu sayede programlarınız diskette daha<br />
az yer kaplarlar; ancak bu da,<br />
compiler'lar için sorun çıkanr. Nedeni gayet<br />
açık; dosyalar sıkıştırıldığında, saf<br />
ASCII yazı dosyaları olmaktan çıkarlar.<br />
Böyle bir dosyayı yukarıda da belirttiğim<br />
gibi compiler yüklememekte ısrar edecektir.<br />
Bunun da çözümü gayet basit: Dosyayı<br />
<strong>Amiga</strong>BASIC'te yükledikten sonra diskete<br />
SAVE "",A komutu ile kaydedin.<br />
Interpreter ise, <strong>Amiga</strong>BASIC gibi editörü<br />
de üzerinde olan ve hiçbir bekleme süreci<br />
olmadan programları yükledikten<br />
sonra doğrudan çalıştırabileceğiniz bir<br />
programdır. Burada program çalıştırıldığında,<br />
sadece programın işlenen satırı makine<br />
diline çevrilir. Bu, tabii ki büyük bir<br />
hız kaybı oluşturur. Hele bir de programda<br />
alt-rutinler ve dallanmalar (GOTO...,<br />
GOSUB..., CALL...) fazlaysa, program daha<br />
da yavaşlar. Interpreter'lara en güzel<br />
örnek, <strong>Amiga</strong> BASIC'tir. HiSoft BASIC,<br />
GFA-BASIC ve AC-BASIC ise<br />
compiler'lar arasında yer alır.<br />
Compiler ve interpreter arasında bir bakıma<br />
büyük bir benzerlik vardır; ikisi de<br />
programın işlenmesi gereken satırını karakter<br />
karakter hafızadan okurlar ve bu<br />
karakterlerin doğruluğunu, sıralanışlarını<br />
ve özel işaretlerin yerlerini kontrol ederler.<br />
Ancak bu şartların hepsi yerine gelirse,<br />
o satır makine diline çevrilir. Interpreter,<br />
çevrilen bu satırı hemen çalıştırır; fakat<br />
compiler, makine diline çevrilen bu<br />
satın öncekilerin sonuna gelecek şekilde<br />
hafızaya atar ve bir sonraki satırın kontrollerine<br />
geçer.<br />
Compiler ve interpreter'ların çalışma<br />
şeklini Şekil I ve Şekil II'den de anlayabilirsiniz.<br />
Ayrıca bir program satırı kontrol<br />
edilirken yapılan işlemleri, Şekil IH'teki<br />
akış diyagramında görebilirsiniz.<br />
Gelelim inceleyeceğimiz üç compiler'a;<br />
bunlar AC-BASIC, HiSoft BASIC ve<br />
GFA-BASIC'dir. Niye bunları seçtiğimi<br />
soracak olanlara cevabım gayet basit; diğer<br />
compiler'lar ülkemize gelmediğinden,<br />
pek onlara değinmek istemiyorum. Ayrıca<br />
AMOS gibi standart BASIC dilindekile-<br />
AMIGA DÜNYASI S3