Bu sayfadaki yazılar
Sayfanın metni
Sayfa 10
Peki BASIC kullanan acemi, amatör ve-
ya yarı profesyonel bir kullanıcı bu yavaşlık derdinden nasıl kurtulabilir. Bu soruya en kolay yanıt hiç kuşkusuz derleyici kullanımı olacaktır. Yüksek seviye dilleri makine diline çeviren derleyici programlar BA-SIC için de yazılmıştır. Bu programlar bazı komutları anlamamakla birlikte birçok komutu, hatta bahsettiğimiz BASIC geliştirici dillerin komutlarını bile makine diline çevirebilmektedirler. Böylece BASIC'in yardımcı ortamında hazırlanıp en iyi haline getirilen bir program derleyici kullanılarak makine diline çevrildiğinde yüksek hızla sorunsuz olarak çalışabilecektir. BASIC derleyiciler iki ayrı mantığa göre çalışırlar. bunlardan ilki olan sistem BASIC'- ten yaklaşık on kat daha hızlı çalışan pseudo code veya speed code denen bir sisteme dayanır. Yalancı kod veya hızlı kod diyebileceğimiz bu sistemde derlenen BASIC programdaki komutlar yerine, bir tablodan okunan veya daha hızlı çalışan program parçacıkları yerleştirilir. Ancak bunlar ne makine dilinde ne de BASIC'tedir. Derlenmiş programın BASIC'ten daha hızlı bir yorumcusu vardır. Yani bu sistemle derlenen programların çalışması sırasında komutlar işlenirken yine, önce anlaşılıp sonra tablodaki program parçacıklarına göre çalıştırılırlar. Derlenmiş bir programı makine dili ile listelerseniz pek bir şey anlamazsınız çünkü program tamamen kendine göre başka bir dille yazılmış gibidir. Bu sistemle derlenen programlar makine diline göre kısa ve BA-SIC'ten daha hızlı olmakla birlikte, komutları ayrı ayrı yorumlanıp işlendiklerinden, makine dilinden yavaş olacaktır. İkinci sistem ise komutların yerlerine tek tek makine dili programlar yazılmasına dayanır. Bu şekilde derlenen program biraz uzun olabilir ama hızı müthiştir. Çünkü tüm komutların tam makine dili karşılıkları kullanılmaktadır. Ancak derleyiciler tüm komutları derleyemezler. Örneğin For/Next döngülerinde zaman zaman kullanılan Step komutu BASIC derleyiciler tarafından derlenemez. Eğer iki veya daha fazla adımla çalışan döngüler kuruyorsanız bunun yerine For/Next yerine If/Then döngüsü kullanmanız daha kolay olabilir. Aslında en iyisi kendi yazdığınız ve mantığı kavradığınız bir program derlemektir. Çünkü bir yerde hata çıktığında hatayı düzeltmek, döngüleri değiştirmek veya aynı işlem içinde başka bir yola başvurmak sizin açınızdan çok kolay olacaktır. Başka birisinin programına yapacağınız değişikliklerin nasıl etkiler yaratacağını bilmeniz ise çok zordur. Derleyiciler programları genelde iki seferde makine diline çevirirler. İlk seferde derleyici BASIC programı inceleyerek yorumlar ve kendi anlayabileceği en iyi şekle getirir. Burada satırlar ve mantıksal satırlar belirlenir. Mantıksal bir komut satırı ilk nokta işaretiyle başlar. Yani tek bir ekran satırında birkaç mantıksal komut satırı olabilir. Derleyicilerin özelliklerine göre hatalar, Rem satırları ve ek komut içeren satırlar da bu seferde belirlenir ve ekranda gösterilir. İkinci seferde ise derlenmiş program yaratıhır, bunu çalıştıracak olan sürücü programla birleştirilir. Tüm derleyiciler disk sürücü gerektirirler. Çünkü derleme işlemi sırasında orijinal program satır satır diskten okunur, derleyici programın kendi referans dosyaları disk kaydedilir, eski dosya silinir ve diske birkaç ayrı dosya yazılır. Şu anda Türkiye piyasasında derleyici olarak üç program bulunmaktadır: Austro Compiler, Blitz Compiler, BASIC 64 Compiler. Austro ve Blitz kullanıcıya fazla olanak sağlamadan programların derlenmesine girişirler. Ancak BASIC 64 Compiler, Commodore 64 için yazılmış en iyi derleyici programdır. Kullanıcıya sağladığı olanaklar ve BASIC programa yerleştirilen çeşitli işaretlerle derleyici sistemine mesajlar iletmesi bu derleyiciyi diğerleri arasında seçkin bir yere getirmiştir. Derleyicilerin ne iş yaptığını anlattıktan sonra, şimdi de kısaca her bir programa şöyle bir göz atalım ve özelliklerini inceleyelim. Birkaç örnek program ile hızlarını ölçtüğümüz derleyicilerin karşılaştırmalarını tabloda görebilirsiniz.
Austro Compiler
Austro Compiler, derleyici programlar arasında en kısa olanıdır ve genellikle derlediği programlar da diğerlerinin derlediklerinden daha kısa olur. Programı çalıştırdığınızda sizden hemen dosya ismi istenir ve adı yazıp RETURN'e basmanızdan sonra derleme işlemine girişilir. Derleme işleminden sonra dosya C/dosyaadı ile kaydedilir. » Bunun yanında BASIC program satırlarına derlenmiş programda karşılık gelen adreslerin yazıldığı Z/dosyaadı adlı bir dosya daha kaydedilir diske.
Blitz Compiler
Blitz Compiler ile Austro Compiler aslında aynı kökten gelmektedirler. Uyguladıkları sistemler ve ekran düzenleri bile çok benzeşmektedir. Ancak Blitz'in Austro'dan en büyük farkı derleme işlemini tek veya çitf sürücülü sistemler üzerinde yapabilmesidir. İlk menüdeki seçenekler sırasıyla tek sürücülü sistemler, birleşik çift sürücülü sistemler ve iki ayrı sürücülü sistemler için derleme menülerine girmenizi sağlar. Tek sürücülü sistem aynen Austro Compiler gibi çalışır. Yani dosya adını verdikten sonra derleme yapılır ve C/dosyaadı ve Z/dosyaadı isimli iki dosya kaydedilir. Birleşik çift sürücülü sistem, Türkiye'ye hiç gelmemiş bir sürücü tipidir. Aynı cihaz üzerinde iki sürücü vardır. Bu cihaz bilgisayar tarafından device (cihaz 8) olarak tanınır. Yani bu cihaza gönderilen tüm komutlar sekizinci cihaza gönderilir. 64'ünüz bu tür cihazlar üzerindeki iki ayrı sürücüyü de drive0 (sürücü0) ve drivel (sürücül) olarak ayırır. Yani bu cihaza gönderilen komutlar, örneğin format komutu, her iki sürücü üzerinde de gerçekleştirilir. Ayrı ayrı komutlar vermek için ise sürücülere (drive0 ve drivel) komut göndermek gerekir. Mesela, format işlemi için NO: ve NI: komutları kullanılır. Bu cihaz üzerinde yapılacak derleme işlemlerini, iki sürücülü sistemlerdekiyle aynı olduğu için ve sanırız kimsede bu cihaz bulunmadığı için açıklamayacağız. Eğer böyle bir cihaza sahipseniz bir sonraki paragraftakileri kendi cihazınıza göre uygulayın. İki sürücülü sistem menüsüne girdiğinizde ise ilk önce size sorulan BASIC programın hangi diskten okunacağı ve derlenmiş programın hani diske yazılacağıdır. Yani sü- Tücü sayısını belirteceksiniz. 8'den 9'a gibi. Bundan sonra size dört seçenek sunuluyor. İlk seçenekte ana diskten tek bir program derlenmesi, ikinci seçenekte tüm programların makine dili olarak derlenmesi sağlanır. Üçüncü seçenekte ise ilk dosya hariç hepsinin derlenmesi yapılır. Son seçenekte aynı değişken setini paylaşan farklı programların ardarda derlenmesi sağlanır. Ancak programlarınızın içine diğerlerini yükleyecek komutlar yazmayı unutmayın.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 11
BASIC 64 Compiler
Diğer derleyici programlardan daha gelişmiş ve daha hızlı olan bu programın mümkün olduğunca açıklamasını yapacağız burada. Çeşitli yöntemler kullanarak derleme yapabilen BASIC 64'de menüler yardımıyla kolaylıkla kullanılmakta ve derlemeden sonra önemli bilgileri kullanıcıya vermektedir.
Bir programı derlemek için, öncelikle hazır BASIC programınızı bir diske kaydedin. Diskte yeteri kadar boş yer olmasına dikkat edin, çünkü biraz önce bahsettiğimiz sebeplerle uzunca bir programın derlenmesi sırasında diskte 300 blokluk yer kullanılabilir. Daha sonra BASIC 64'ü yükleyin ve programı çalıştırın. Diskin ışığı bir süre yanacak, sonra sönecek ve karşınıza programın ana ekranı gelecektir. Şimdi derlenecek programı içeren çalışma diskinizi sürücüye takın. veya RETURN tuşuna basın (RE-TURN tuşu derleyicinin 1'inci yöntemi kullanacağını belirtir). Daha sonra programınızın adını yazın ve tekrar RETURN'e basın. Derleyici, programınızı hızlı koda çevirecektir. Derlenen satırın numarası ekrana yazılacaktır. Eğer derleme sırasında bir hatayla karşılaşılırsa derleyici hata mesajını ekrana yazar. Derleyici işini bitirdikten sonra READY mesajını verir. Bu noktada N tuşuna basmak başka bir programın derlenmeyeceği mesa-
TI 4284 1249 1030 984 814 408 programın yer kapladığın sonra gelen harflerden P, hızlı kod üretimi ve M makine dili üretimidir. Bu harfleren sonra gelen sayılar ise optimizer numarasını gösterir.
Ekran temizleme programının grafik ekranını temizlemek için harcadığı
terilmiştir. Blok sayısı
diskte kaç blok
zamanlar gös- 1 gösterir. Basic64'te
1.82
Basic64 M2 Tablo 2:
DS 20 4.41 3.02 8.75 2.48 2.12
1.37 2 jını verir. Herhangi başka bir tuşa basmak işe devam etmek üzere programın ana menüsüne döner. Eğer derleme sırasında hata bulunmuşsa orijinal BASIC programı düzeltmeli ve derleyiciyi tekrar çalıştırmalısınız. Eğer hata bulunmamışsa BASIC 64 derlenmiş programı P-programadı ismiyle diske kaydeder. Örneğin orijinal programınızın adı TEST ise derlenen programın adı P-TEST olacaktır. ten normal olarak yükleyip RUN komutunu vermeniz yeterlidir. derlenmiş bir programın çalışması esasında bazı hatalar ortaya çıkabilir. BASIC program tarafından verilecek olan hata mesajının aynısı derlenmiş program tarafından da verilir. Ancak satır numarası yerine hafızada hatanın oluştuğu adres verilir. Adres listesine bakarak orijinal programdaki hatanın nerede olduğunu kolayca bulabilirsiniz. Bu işlemi daha ileri de detaylı olarak açıklayacağız. Programa girdiğiniz anda derleyici olarak optimizer denen en iyi seviyeyi bulan sistem olarak seçilmiştir. RETURN tuşuna basarak bu işleme başlayabileceğinizi
programın hızları ölçülmüştür. Her bir çeşit sıralamanın süreleri çeşitli derleme tipleriyle karşılaştırılabilir. barcık; SM, Shell-Metzner; GS, guicksort ve DS,
2 sistemi seçilir. Bu iki derleme sisteminin tek farkı programın derlenmesi aşamasında Optimizer-1 genel olarak BASIC yorumlayıcısı ile aynı tabana dayarlır. Hesaplamalar sayılar -32768 32767 arasındayken tamsayı cinsinden yapılır. Bu sınırların dışına düşen sayılar ondalıklı sayılara dönüştürülür. Optimizer-1 tamamen BASIC uyumlu olduğu için programın işleyiş şekli değişmez ve sadece hızı artırır. hesaplarında tamsayı kullandığı için siz de değişkenlerinizde işaretini kullanırsanız bu, hızı büyük ölçüde artıracaktır. *2” tuşuna basarak gireceğiniz optimizer- 2, ve BASIC'ten birkaç noktada ayrı düşer: Kelime dizisi (string) değişkenleri hariç, tüm değişkenler tamsayı olarak işlenir. Yani derleyici otomatik olarak değişkenlere “We” işaretini ekler. sayı olarak yapılır, yani ondalık hesabı yapılmaz
Optimizer-2'nin en iyi kullanım alanı karışık değişkenler kullanan veya tamsayı değişkeni kullanılmasına izin vermeyen programlardır.