1 Ocak 1987 Tarihli Commodore Gazetesi Sayfa 62

1 Ocak 1987 tarihli Commodore Gazetesi Sayfa 62
Metin içeriği (otomatik olarak oluşturulmuştur)

PASCAL, COBOL gibi tüm diller. Bu dillerin genel özelliği belli bir problemin çözülmesi için geliştiril miş olmaları. Makina dili ise bu dillerin tam tersine aletin donda- nim yapısına hitap eder. BASIC'I iyi biliyorsunuz. dedik (zaten başka türlü, makina dillni düşünmek hayal olurdu). Yalnız Coömmodoöre ödğ'ünüz esasında BASIC bilmiyor. Peki nasıl oluyor da, BASIC komutlarını böyle dü- zenli ve hızlı yürütebiliyor. Bu özel- likleri sağlayan şey, işletim sistemi- nin bir parçası olan BASIC-AINTERP- RETER (yorumlayıcı)'dır. Yorumla- yıcının görevi, yazı karakterlerini kullanarak verdiğiniz BASIC ko- mutlarını yorumlayıp bunlara ait (hazır olan) makina alli allprog- ramları yürütmek. Şimdi bir örnek üzerİinde bu ola- yı daha detaylı olarak kavrama- ya çalışalım: Bu emri ekrana yazıp 'RETURN' tuşuna bastığınızda. yorumlayıcı bu satırı harf harf okur ve kendi- ne alt komutları arar. Bu işlemi, okuduğu kelimeyi belleğinde bel- li bir bölgede bulunan komut tab- losuyla karşılaştırıp yapar (SGOTO, FOR, INPUT gibi). Şayet kendine dit bir kornmuta rastlarsa, bu komutun numarasına dikkat eder. Bu nu- marayı İse başka bir tablodan © 'komulun adresini bulmak için kul- lanır. Artık komutun uygulanması- na gelmiştir sıra, PRINT emrine ait aktprogram çağırılır. Bu altprog- ram da karakterleri tek tek okur. Tırnağa rastladığı zaman sonra gelen karakterleri ekrana basma- ya başlar. Bu işlem ikinci lırnağa rastlayana kadar sürer. Daha sonra İse satır bitmektedir. PRINT altprogramı yorumlayıcıya geri döner. Bu da yapacağı işin bitti- ğini anlayınca yeni kormut almak için 'READY” yazcır ve CURSOR ya- nıp sönmeye başlar, Şirmdi diyeceksiniz ki bu kadar- cık İş için aletimiz böyle mi uğra- şıyor?., Bu küdar uğraşmaktan elddi bir şey yapmaya zaman bu- lamaz bu ölet... Halbuki gördüğü- nüz gibi durum © kadar da kötü değil. Aletimiz gene de bu İşlem- leri oldukça hızlı yapmakta. Düşü: nün bir de biz aradaki birçok ge- teksiz işlemi atlatıp bu işleri yapan ana İşlem ünitesine doğrudan hi- tap edebilsek, O zaman görün siz hızı., Bit örnekle bu hız farkını daha belirgin olarak gözleyelim. Diye- lim ki ekranın sol üst köşesine bir “A” hüarfi çıkartmak istiyoruz. Bu- nun İçin hızlı bir yöntem olarak POKE komutunu kullanalım. BASIC satırı olarak şunu girmemiz gerek- mektedir: Bunu yazar yazmaz ekranın sol Üst köşesinde A” harfi belirdi de- ğil mi? (Bu emri yazarken ekranı kaydıracak bir yerde olmamaya dikkat edin, yoksa A harfinizi bir türlü göremezsiniz, hölâ göremi- yorsanız sizin aletiniz 1984 sene- sinden de eski üretilmiş demeklir. o zaman uğraşmaktan vazge- çin.) Yalnız hızı gözle takip ede- mediniz galiba?.. Tekrar tekrar denemenin faydası yok. Oldukça hkızli oluyor galiba bu iş. Bütün bu işlemin toplam süresi 2 milisaniye civarı bir şey (bir milisaniye, sani- yenin binde biridir). Şimdi bir de müakina dilinde ay- ni İşi yaptırcılım: Bunu yazıp zamanı ölçmeye fa- lan kesinlikle kalkışmayın. Çünkü işlemimiz yalnızca & mikrosaniye sürüyor (bir mokrosaniye,saniye- nin milyonda biridir). Gördüğü- müz gibi aynı işi BASIC'te ve ma- kina dilinde yapmak arasında 200 kat kadar zaman farkı keşfet- tik. Aslında genel bir yargı olarak belirtebiliriz ki. aynı işi yapmak üzere yazılmış BASIC ve makina dili programlar arasında 1Ü ilâ 4000 kat hız farki vardir. Bundan başka bazı işler vardır ki yalnızca makina dilinde yapılabilir. Bunla- ra daha sonra değineceğiz. Başka bir genel yargı da bilgi- saydrrın tüm olanaklarını yalnizca müakina dilinden kullanabileceği- niz. Buna örnek olarak Commo- dore 64'ün üç boyullu ve gerçek zamana bağımlı grafik özellikle- rini kullanabilmeyi verebiliriz. İlginç bir özellik de makina dili programlarının daha ufak ve der- li toplu oluşu. Mesela 1 KByfte'lık bir BASIC program ciddiye alın- maz bile. Oysa bu Uuzunlukta bir müakina dili program başlı başına tüm bilgisayarı çekip çevirebilir. Veri ve bilgileri saklama konu- sunda da aynı şeyi söyleyebiliriz. Kendinize uygun en kompaki şekli kullanabilirsiniz. Oysa BASIC'te kullanabileceğiniz veri tipleri sınır- lidir. Gelelim makina dilinin dez- avantajlarına: Öncelikle makina dilini öğrenmek gerekiyor. Fakat BASIC'teki programlama teknikle- rine hakimseniz, belli bir altyapı- nız var demektir. Ayrıca LİSTİNG ekinde müakina dilinde çalışabil- meniz için gerekli araç ve gereç- leri bulacaksınız. Bunlar monitör programları, assembler program- ları, simülatör'ler, reassembler vs. programları olacak. Makina dili- nin başka bir dezavantajı bilgisa- yara aşırı biçimde bağımlı olma- sıdır. Aynı ana işlem ünitesine sü- hip bilgisayarlarda bile doğru- dan programları taşıyomazsınız. Bunun nedeni makina dili prog- tamlarının bilgisayarın birçok özel fonksiyonlarına yönelik olmasıdır. Gördüğünüz gibi dezavantoajldır pek o kadar da fazla değil. Bun- ları da yalnızca kendine güven ve cesaretle atlatabilirsiniz. Ger- çekten de bilgisayarınizda arayıp bulamadığınız birçok özelliği ma- kina dill yardımıyla görebilecek- siniz. Bu arada bazılarınız diyebi- lir ki BASIC ne olacak? Bir kenara mı birakacağız o'nu?.. Hayır, hiç de öyle değil, programınızın ge- rekli kısımlarında makina dili kul- lanırsınız, bunları denetim altında tutan gene BASIC programiniz olur, İlk makina dili programınızı ya- ziınca göreceksiniz ki bu iş öyle ilk göründüğü kadar zor değil. Bu yazı dizisi boyunca birçok Pprog- tramlama örneği de vererek size program geliştirme yönünden yardımcı olmaya çalışacağız. De- diğimiz gibi, sonuçta iyi bir şeyler yapabilecek duruma geleceksi- Ö2 Commodore ———

Bu sayıdan diğer sayfalar: