AMIGA&PASCAL
Retro bilgisayarBilgisayar dilleri kendi aralarında, insana veya makinaya yakınlıklarıyla sınıflara ayrılırlar. İnsana yakın diller çok sayıda özelleşmiş komutlar içerirler, dolayısı ile kullanımları çok kolaydır. Ancak bu rahatlıklarını ya düşük hızları ile (BASIC gibi) ya da sınırlı kullanım alanları ile (PRO-LOG, AMOS ve her ne kadar tam bir dil sayılmasa da DEMO-MAKER gibi paketler) öderler. Makinaya çok yakın olan diller ise çok sınırlı komut hazneleri ile karışık işlemleri programlamayı (Reel sayılarla hesap gibi) aşırı zahmetli kılmaktadırlar (Assembler bu türün klasik örneği). Programlarda istenen hızı sağlayabilecek kadar makinaya yakın, ancak karmaşık programlamayı ve geniş bir kullanım alanını sağlayabilecek programlama dillerini, bu iki ucun arasında aramak gerekir. C ve Pascal, günümüzde yukarıda belirtilen amaçlar doğrultusunda en çok kullanılan iki temel programlama dili olarak kendilerini kabul ettirmişlerdir. Amiga'nın tüm sisteminin C kullanılarak hazırlanmış olması, Amiga'da, C programlama dillerinin yaygınlaşması sonucunu doğurdu. Uzun bir süre amatör girişimler dışında Amiga'da Pascal kullanımı yayılmadı. Bunun üzerine özellikle ülkemizde (Hele akademik çevrelerde) yaygın olan, "eğer program yazmak istiyorsan C öğrenmelisin, C öğrenmek şart" gibi şartlamaların sonucunda, bırakın Amiga'yı, herhangi bir bilgisayarda bile Pascal'a olan ilgi azaldı. (ÜLKEMİZDE!!!) Gerçekten de, çok kullanıcılı sistemler ve karmaşık sistemler yazabilmek için C ideal bir dil. Programlama sırasında fuzuli en ufak bir karakter kullanılması gerekmiyor. En önemlisi ise bir iki değişkeni doğrudan register olarak kullanma olanağınız var. Ancak tek kullanıcılı sistemlerde, C'nin Pascal'a belirgin bir hız ya da kolaylık üstünlüğü yoktur. (Hız karşılaştırması yapacaksanız, sadece for döngüleri kullanmaktan vazgeçelim lütfen!) Gerçek şu ki C'de yapabileceğiniz herşeyi Pascal ile de yapabilirsiniz. Herşey iyi güzel de, madem C de Pascal kadar iyi, neden Pascal kullanalım? Hem ne güzel C'de öğrenmeye başlamıştık! Pascal'ın yayılmasında ve bir kullanıcı kitlesi elde etmesinde belki de en önemli pay sahibi, Borland şirketinin Turbo Pascal serisi olmuştur. Bugüne kadar bilgisayarda yazıldığını gördüğüm en güzel program, bu şirketin Turbo Pascal 5.0 programı (Aslında 4.0 demem gerekiyordu, ne var ki bugüne dek 4.0 paketini göremedim). PC ve uyumlu bilgisayarlar için yazılan bu paket, zamanında ortaya çıkan paketti. Gerçekten de bu
F. Kağan Gürkaynak paketle program yazmak bir zevk haline gelmişti. Zira dilin tüm elemanları (Compiler, Linker ve Debugger), kaliteli bir editör ile bir araya getirilmiş, tüm kontroller menüler tarafından kullanılabilir şekilde hazırlanmış, tüm bunlara ek olarak tüm komutlar ile ilgili bilgi alabilmek için bir Help seçeneği yerleştirilmişti. Bu paket bugün bile kullanışlılık ve performans açısından bir ölçek olarak kullanılmaktadır. Borland daha sonra, başka paketleri de benzer bir kullanım sahası ile donatmış ve yeni yeni versiyonlar çıkarmıştır (Maalesef Amiga'da Borland tek bir program bile çıkarmadı, son bildiğime göre de çıkarmayı düşünmüyor.). Bu paket bir anda PC'lerde geniş bir Pascal kullanıcı kitlesi yarattı (Bir PC düşmanı olarak ben bile Turbo ile program yazmaktan müthiş zevk alırım.). Birçok okul, üniversite ve kursta Pascal eğitimi verildi (Biz hala Fortran 77 görüyoruz!!!!). Sonuçta bugün, şu veya bu şekilde Pascal bilen bir kitle mevcut. Ancak Amiga'ya geldiklerinde, ya komik Basic ile idare etmeleri gerekiyor, ya da programlarını C'ye çevirmeleri gerekiyor. Tüm bunları bırakalım, Pascal aslında C'ye oranla son derece sevimli bir dildir. Pascal'da yazılmış bir programı okuyarak anlamak, her zaman bir C programını okumaktan kolaydır. Aşırı yapıların bulunmaması, Pascal'ın nispeten daha kolay öğrenilmesini sağlayacaktır (Zaten Pascal, bilgisayar programlama dersi veren bir hocanın öğrencileri daha kolay anlasın diye yazdığı bir dildir.). Güzel, Pascal'ın kullanılabilecek bir dil olduğu, hatta sizi C kabusundan kurtarabileceği konusunda anlaştık. Amiga'da bulunan Pascal paketlerini incelemeye başlamadan, program yazacağımız dillerde aramamız gereken bazı özellikleri sıralamak istiyorum: a. İstediğimiz paket, bir kitle tarafından kabul edilmiş olmalı. Bu sayede programcılar programı sürekli geliştirme yoluna gireceklerdir. 1.0 versiyon bir programlama dilinden çok şeyler beklememek gerekir. Bugün PC'de Turbo Pascal V 6.0 kullanılıyor (1, 2, 3, 4, 5, 5.5 ve 6.0). Aynı şekilde Amiga'mızın standart dillerinden Lattice C V5.02 (Ya da öyle birşeyler) ile 6 senelik gelişme sürecinin ardından bugünkü yerine varmıştır. b. Geliştirdiğiniz programları başka paketlerce yazılan programlarla birleştirebilmelisiniz (Özellikle Assembler ile). c. Programlama dili Amiga'nın sistemini tam olarak kullanabilmeli, Library'lere ulaşabilmeli ve Amiga'nın özelliklerine özgün komutlar taşıyabilmelidir. Gelelim Amiga'da bulunan program paketlerine:
ADIM ADIM PASCAL.... 1.0 Pascal ve Amiga versiyonları, Pascal ile neler yapılabilir. 2.0 Pascal'ın genel yapısı: Tanımlar, bloklar, Procedure ve fonksiyonlar. 3.0 Pascal dili özellikleri, tip tanımları, unitler. 4.0 Amiga ile iletişim: Library kullanımı, Amiga'ya has komutlar. 5.0 Gelişmiş programcılık: Teknikler, başka sistemlere veya sistemlerden aktarmalar.
letine: Açıkçasını söylemek gerekirse, bu araştırmayı gerçekten kaliteli bir Pascal ortamı bulduktan sonra yaptım. Dolayısı ile diğer paketlerin sadece isimlerini derleyerek ilk izlenimlerimi belirttim. İlk olarak Metacomco'nun 1985'de 68000 için hazırladığı bir Pascal var. İsmi piyasada sadece Pascal olarak geçiyor. Başarılı olamamış, üzerine düşülmemiş. Ama ANSI (Amerikan ulusal standartlar enstitüsü) standardına uygun programları tercüme edebilen bir compiler. Yaptığı iş, bir editörle hazırladığınız source'u, bir obje dosyasına dönüştürmek. Daha sonra ALink programı ile gerekli dosyaları bağlayarak, çalışabilen bir program elde edilebiliyor. Yurtdışında çok yaygın olan Fred Fish'in Public Domain Disketlerinde bulunan PCO Pascal (PCO: Pascal Compiler Çuaid demek oluyor, PCO Pascal ise GAP Projesi gibi kaçıyor...) yakın zamana kadar Amiga'daki en gelişmiş Pascal'lardan biriydi. Hem az çok bir kullanıcı kitlesine sahipti, hem de Amiga ile nispeten iyi anlaşabiliyordu. Ne var ki, ne hız ne de ürettiği programların boyu açısından ciddi programlamalar içinde unutulabilecek bir paket. Editör'de program yaz, CLI'dan Compiler'ı çağır, CLI'dan Linker'ı çağır prensibi ile çalışan bir paket (Amiga'da bulunan programlama dillerinin %95'i bu şekilde çalışıyor). Power Pascal ve TCC Pascal, Pascal 2000 gibi çeşitli çap ve ebatta Pascal paketlerini de piyasada bulmak mümkün. Ancak benim bulabildiklerim, ya dosya eksikliğinden, ya döküman eksikliğinden kullanılacak durumda değildi (Kabiliyetimin eksikliğini de eklemek mümkün.). Ne var ki görebildiklerim diğer anlatılanlara benzer özellikler göstermekte. Size önerebileceğim bomba gibi bir paket olmasa, bu yazıyı hazırlamayacağımı tahmin edersiniz. İşte gerçekten Amiga'da profesyonel programlar geliştirebilecek kabiliyette olan bir Pascal ortamı: Kick Pascal. Alman Maxon tarafından hazırlanan bu paketin ilk olarak 1.0 versiyonu ortaya çıktı. Diğer paketler gibi fazla birşeyler veremeyen bu paket, belki hiç dikkat çekmeyecekti. Ancak diğerlerine göre Hi-Soft'a benzer bir yazım ortamına sahipti ve compile süresi gerçekten Amiga'da bulunan tüm compiler'lardan hızlı idi. İki ay sonra yeni versiyonlar çıktı: 1.1 ve 1.3, Ardından 90 sonlarında çıkan ve yazı hazırlandığı sırada son versiyon olan 2.0 ile gerçekten kendine sıkı bir yer kazandı. Yaklaşık bir sene içine sığdırılan ani gelişme sonunda Kick Pascal 2.0, PC'de bulunan Turbo Pascal 3.0'ın kalitesine ulaştı denebilir. Bu gelişme bu hızla devam ederse, Amiga'da bulunan en iyi programlama ortamı olmaya aday. Avrupa'da kısa sürede sevilen Kick Pascal, rekabeti de ortaya çıkaracağa benzer. Mükemmel Assembler ortamından tanıdığımız Hi-soft DevPAC yetkilileri de, HiSpeed Pascal isminde bir paketi çıkaracaklarını açıkladılar. Şirketin Assembler ve Basic'te kazandığı başarıyı sürdürmesini diliyoruz. En kullanılabilir ortam olduğundan, yazı sırasında Pascal ile ilgili anlatacağım özellikleri Kick Pascal 2.0'ı göz önüne alarak anlatacağım. Kick Pascal, kendi editörü, compiler'ı ve linker'ı olan bir ortam. Editörü kesinlikle Cygnus Editor Pro ile yarışabilecek düzeyde değil. Yine de yeterli fonksiyonlara sahip ve programınızı yazıp değiştirebiliyorsunuz. Tüm ortamın belki de en kötü yanı, menüden Load seçeneği ile ortaya çıkan requester (Yani Basic ile yazsam daha iyi olabilecekmiş, bu pakette bunun ne işi var anlayamadım?). Bunun dışında özellikle Compile hızı ile (20.000 satır/dakika) takdir topluyor. İki diskette gelen program, Amiga'nın tüm library'lerine kolayca ulaşabiliyor. Yazdığınız programın hızı ise, C ile elde ettiğiniz sonuçlara oldukça yakın. Döngü hesabı ile bile (Boş döngülerde döngü elemanını C dilinde register olarak kullanabileceğinizden hızlı olacaktır) 7/10 gibi sonuçlar alabiliyorsunuz. Turbo ile gelen Unit özelliği ise, Kick Pascal V2.0'dan itibaren kullanılmaya alınmış. Bu sayede istediğiniz komutları yazmanız mümkün olabiliyor. Amiga'ya özgü yeni tipler ve yapılar da tanımlanmış. En güzeliyse, record türü (C'de structure) değişkenlere atama yaparken getirilen kolaylık. Mesela pencere açabilmek için kullanılan NewWindow yapısına, normal olarak şu şekilde atama yapılır: YeniWin.LeftEdge := 10; YeniWin.TopEdge := 10; Width := 600; Vs. vs. Bunun yerine YeniWin := NewWindow(0,10,600,...); yazılabilmekte. Ayrıca programınızı ortamdan çalıştırırsanız, ortam programınızda Stack taşmalarını, aritmetik taşmaları, sınır değerlerin aşılmasını, Arraylerde hatalı indexlemeyi yakalayabilecek kabiliyette. C'de kullanılabilen tüm libraryler Pascal'ın kullanacağı bir biçime getirilmiş ve Include File'ları Pascal'ın yapısına göre ayarlanmıştır. Kick Pascal'da source'un içine Assembler yazabilme ve diğer dilden programlarla haberleşebilme özelliği bulunuyor. (Alink uyumlu) Kısacası Kick Pascal 2.0 profesyonel bir programlama ortamı. Elbette bazı eksiklikleri ve zayıflıkları var. Ancak gelişme süreci göz önüne alınırsa, Amiga'daki en iyi ortam ve dillerden biri olmaya aday. Ciddi programcılara ve onların ciddi programlarına hizmet edebilecek nitelikte. Programın kabiliyetleri ikinci diskette verilen bazı örneklerle de gösterilmiş. Bunların arasında 300 değişik türden fonksiyonun diferansiyelini hesaplayan programlar, örneklenmiş sesleri çalabilen programlar, CLI'daki List emrine bir alternatif, IFF resimleri HAM formatı ve overscan dahil gösterebilen bir program, hafızayı incelemenize yarayan bir monitor programı yer alıyor. İyi programlanmış olması kaydıyla, DOS2DOS yardımıyla PC'de yazılan programlarınızı dakikalar mertebesinde Amiga'nızda çalıştırabiliyorsunuz. Hatta uyumu sağlayabilmek için Turbo Pascal'da bulunan CRT Unit'in komutlarını kullanan bir Unit bile yazılmış. Elbette her program dilinin uygun olduğu bir alan vardır. Basic bile bazen diğer dillere göre tercih edilebilir. Ancak Kick Pascal (Ve umarız rekabet için çıkacak olan paketlerle) C'ye bir alternatif çıkmış durumda. Yazımızın diğer bölümlerinde Amiga'da Pascal hakkında genel bilgiler vermeyi sürdüreceğiz. Hepiniz hoşçakalın.