Commodore sayı 38, sayfa 67

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 67

2. Dosyanızı düzenleyin ve değişiklikleri kaydedin Makinenizin belleği 1MB'tan azsa editörden çıkın. 3. Hedef dosyanızın adını vererek Manx derleyici çalıştırın. 4. Derleyicinin vereceği hatalara dikkat edin. Bunları düzeltmek için dosyanızı yeniden düzenleyin. 5. Manx assembler otomatik olarak başlayacak ve derleyicinin çıktısını işleyecektir (C hedef dosyanız derleyici tarafından assembly diline çevrilmekte). 6. Son olarak programı, paketle birlikte sağlanan bağlayıcı (linker) ile Aztec C desket kitaplıklarına (kitaplık bir altrutinler topluluğu anlamına geliyor) bağlayarak çalıştırılabilir bir AMIGA programı haline getirin. 7. Programı çalıştırın ve bu arada yapmak istediğiniz başka bir şey, kahp kalmadığına bakın. Yazılımınız mükemmel hale gelene kadar 1. aşamaya kadar geri dönün. Aztec'in, AMIGA özellikleri konusundaki desteği oldukça eksiksiz. Sadece fonksiyonu ve kabul ettiği parametreleri belirterek AMIGA ROM Kernel fonksiyonlarından herhangi birisini çağırabilirsiniz. Bağlama aşamasında gereken yapıştırıcı rutinler (glue routines - bütün 68000 CPU sicillerinin yapılan sistem çağrısını (pencere açmak vb.) kabul edebilmesini sağlayan küçük altrutinler) Aztec kitaplıklarından okunuyor. Örnek olarak C, bütün parametreleri donanım yığınındaki bir fonksiyona iletir, ancak sistem rutinleri bu parametrelere CPU sicillerinde gerek duyarlar. Yapıştırıcı rutin parametreleri, yığından sicillere taşır ve sonra da kontrolü çağrısı yapılan fonksiyona geçirir, yani bir anlamda çağrı yapan programı sistem rutinine yapıştırır. Aztec sisteminin çok yararlı bir parçası da Seçimle Hedef Dosya Hata Düzelticisi. C'de yazdığınız programınızın hatalarını pek çok durumda dilinde düzeltmeniz gerekmekte. SHDHD ile sadece orijinal hedef kodu dosyasına bakmak durumundasınız. Bu çok faydalı özellik sayesinde iki yerine sadece bir dil öğrenmek zorunda olduğunuzdan, genel öğrenme eğriniz yükselecektir.

LATTICE €

Commodore'un programcılara dağıttığı orjinal AMIGA C olan Lattice şimdiye kadar çeşitli revizyonlardan geçti, ancak hâlâ yaklaşık Manx kuvvetlerine sayı ve sorumluluk olarak eşit bir kitlenin gözdesi. Dökümantasyon sizi dile, Manx paketinden daha yavaş alıştırıyor. Kılavuzun ilk üç sayfası, Lattice'den nasıl teknik yardım sağlayabileceğinizi incelikle tarif ediyor. Genelde kılavuz daha arkadaşça yazılmış, ancak eksiksiz olduğu söylenemez. Lattice C'nin en yeni versiyonu sonunda kullanıcıya bellek kalıplarına ilişkin bazı seçenekler sunuyor (sadece iki tane). Çok sayıda örnek program ve bazı çok açık seçik yazılmış AMIGA program organizasyonu ve erişimi mümkün değişik kategoride AMIGA fonksiyonlarını açıklayan sayfalar var. Yine, bu sistemle C programları yazmaya çalışmadan önce CLI'yi yalayıp yutmalısınız. Lattice'le program yazma esas olarak Manx derleyicisinin bir parça daha hızlı çalışması dışında Manx sistemiyle benzerlik gösteriyor. Manx gibi Lattice de yalnızca yapıştırıcı rutinlerle bağlanmış çok iyi bir ROM Kernel desteği sunmakla kalmıyor, ayrıca ROM Kernel rutinlerini yapışkan rutinlere başvurmadan doğrudan çağıran bir metod sağliyor. Böylece bu çağrıların işleme konması çok daha hızlı gerçekleşiyor. Genelde ele alırsak Manx sistemini az bir farkla Lattice'e tercih ediyorum. Her iki şirket de muhtemelen önümüzdeki yıllarda dilin geliştirilmiş versiyonlarını sunmaya devam edecekler -en azından ben öyle umuyorum- çünkü böyle bir rekabetten hepimiz faydalanacağız.

MODULA-2

Modula-2, Niklaus Wirth tarafından yine kendisinin yazdığı popüler Pascal dilinin yerini almak üzere geliştirildi. Anlaşılması kolay olduğundan ve mevcut iki ortamın ikisinin de kıllanışlı ve güçlü olmasından dolayı çok geçmeden yaygınca kullanılan bir AMIGA dili haline geldi. Modula-2 ile programlama problemlerinizi herbiri spesifik bir fonksiyonun altından kalkan modüllere ayırıyorsunuz. Bir modül iki kısımdan oluşuyor: Tanımlama modülü (Definition module), modül'ün parametre olarak ne beklediğini ve sonuç olarak çağrı yapan yazılıma ve göndereceğini anlatırken Tamamlama modülü (Implementation module) asıl işi bitiren programcılık ifadelerini kapsıyor. Tanımlama değişmediği sürece Tamamlamayı, yazılımın bu modülle kurduğu etkileşime dokunmak zorunda kalmaksızın istediğiniz şekilde değiştirebilirsiniz. Modula-2 sizi projelerinizin modüller halinde yapılandırmaya zorluyor ve diğer fonksiyonlara doğru parametrelerin geçirilmesi konusunda çok katı. En başta bu çok sıkıcı olabiliyor, çünkü dil tam anlamıyla çok eleyip sık dokuyan cinsten. Bununla birlikte Modula-2 ile kod yazma konusunda biraz tecrübe kazandığınızda esas faydanızı keşfedeceksiniz: Herhangi bir programınızı başarılı şekilde derleyip bağlayabiliyorsanız, doğru şekilde çalışacaklarından emin olabilirsiniz. Modula-2 derleyicileri sizin yapabileceğiniz programlama hatalarını - sadece sentaks hatalarını değil, aynı zamanda mantıksal hataları da Ye 90 önlüyor. Bazıları Modula-2'yi yavaş, hantal, şişirilmiş ve aşırı hassas görüyorlar, fakat bu kişisel bir zevk meselesi ve benim katılmadığım bir görüş. Başka bir eleştiri de - belki daha dayanıklı - dilin, C gibi dillerin bir özelliği olan belli bir bellek alanının kapsamını belirleme yeteneğine işaret ederek “ön belirlemeli bilgi yapıları” desteği olmadığı şeklinde yöneltiliyor. Modula-2'de yazdığınız program çalışmaya başladığında belleğe bilgi depolamak için çeşitli ifadeler kullanmak zorunda. Buna önemsiz bir kusur demek zor, çünkü AMIGA programcılığı kullanımdan önce belirlenmesi gereken çeşitli bilgi yapılarına fazlaca ihtiyaç duyuyor. Şu anda piyasadaki üç ana derleyiciye bakalım: TDI Modula-2, M2AMIGA ve Benchmark Modula- 2. Hepsi AMIGA programcılığı için eksiksiz hazırlanmış sistemler oldukları gibi, yukarıda C'de anlatıldığı gibi ROM Kernel fonksiyonları ile arabirim oluşturmak için yapıştırıcı rutinler kullanıyorlar. Bununla birlikte, benzerlikler burada son buluyor.

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