siyonun altından kalkan modüllere ayırıyorsunuz. Bir modül iki kısım- dan oluşuyor: Tanımlama modülü (Definition module), modül'ün para- metre olarak ne beklediğini ve sonuç olarak çağrı yapan yazılıma ve gön- dereceğini anlatırken Tamamlama modülü (İmplementation 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 mo- dülle kurduğu etkileşime dokunmak zorunda kalmaksızın istediğiniz şekil- de değiştirebilirsiniz. Modula-2 sizi projelerinizin mo- düller halinde yapılandırmaya zorlu- yor ve diğer fonksiyonlara doğru pa- rametrelerin geçirilmesi konusunda çok katı. En başta bu çok sıkıcı ola- biliyor, çünkü dil tam anlamıyla çok eleyip sık dokuyan cinsten, Bununla birlikte Modula-2 ile kod yazma ko- nusunda biraz tecrübe kazandığınız- da esas faydanızı keşfedeceksiniz: Herhangi bir programınızı başarılı şe- kilde 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 hata- ları da Ve 90 önlüyor. Bazıları Modula-2'yi yavaş, han- tal, şişirilmiş ve aşırı hassas görüyor- lar, fakat bu kişisel bir zevk meselesi ve benim katılmadığım bir görüş. Başka bir eleştiri de - belki daha da- yanıklı - dilin, C gibi dillerin bir özel- liği olan belli bir bellek alanının kap- samını belirleme yeteneğine işaret ederek “ön belirlemeli bilgi yapıları” desteği olmadığı şeklinde yöneltili- yor. Modula-2'de yazdığınız program çalışmaya başladığında belleğe bilgi depolamak için çeşitli ifadeler kullan- mak zorunda. Buna önemsiz bir ku- sur demek zor, çünkü AMIGA prog- ramcılığı kullanımdan önce belirlen- mesi gereken çeşitli bilgi yapılarına fazlaca ihtiyaç duyuyor. Şu anda piyasadaki üç ana derle- yiciye bakalım: TDI Modula-2, M2AMIGA ve Benchmark Modula- 2. Hepsi AMIĞA programcılığı için eksiksiz hazırlanmış sistemler olduk- ları gibi, yukarıda C'de anlatıldığı gi- bi ROM Kernel fonksiyonları ile ara- birim oluşturmak için yapıştırıcı ru- tinler kullanıyorlar. Bununla birlik- te, benzerlikler burada son buluyor. TDI MODULA-2 AMIGA için gelişmiş bir Modula- 2'yi ilk sunan TDI oldu. BASIC'ten daha iyi ve C'den daha kolay bir dil arayan pek çok kimse bu paketi sa- tın aldı. Almasına aldılar da, aynı za- manda şimdiye kadar gördüğüm en kullanıcı-düşmanı sistemlerden biri- ne de sahip oldular. 3500 sayfalık kullanım kılavuzunda Modula-2 programı yazma ve kullanma konu- sunda 40 sayfadan daha az bilgi var. Kitabın gerisi örnek bir küp döndür- me programı (güzel olduğunu inkar edemem) ve AMIGA -spesifik fonk- siyonlar için Tanımlama modülleri- nin listelerine ayrılmış ve dosyaları içine alıyor. Bu sistemi kullanarak Modula-2'yi öğrenmeyi planlıyorsa- nız, mecburi olarak dil için ayrıca bir programcılık kitabı satın almak z0- runda kalacaksınız. Düzenle-derle-bağla döngüsü yu- karıda bahsedilen € döngüsüyle ben- zerlik gösteriyor. TDI editörü derle- yicinin hatalı bir dasyanın okuyarak derleme işlemi sırasında ortaya çıkan problemleri düzeltirken sırasıyla ha- taları ele almanızı sağlıyor. Bu çok yararlı bir özellik, fakat benim ver- siyonumda her zaman çalışmadı. Modula-2 uzmanı bir arkadaşım sayesinde birkaç günlük yoğun çaba- lar sonucu bu yazılımda bazı ilerle- meler kaydedebildim, fakat tekrar elime alıp kullanmam. Derleyicisi aşı- Tı yavaş ve geçici dosyalar için gerek- sinim duyulan RAM veya disk geniş- liği dev boyutlara varıyor. Biten kod çok hızlı çalışsa da yegane Modula-2 sistemim olarak bunu seçmezdim, M2 AMIGĞGA Bu yazılımla sorunlarım dağıtım disketinin çalışan bir versiyonunu bu iş için sağlanmış yazılımı kullanarak yaratmaya çalıştığımda başladı. Bir- çok kereler kilitlenerek beni derleyi- cinin kendi kalitesi konusunda şüp- helere sevketti. Ancak sonunda tam olarak çalışan bir versiyon elde etti- gimde ve üzerinde çalışmaya başladı- Bımda haş sürprizlerle karşılaştım. İsterseniz yazılımı bütünüyle Workbench'ten kullanabilme imka- nınız olduğundan, sadece birkaç da- kika içinde M2AMIGA demo prog- ramlarını derlemeye başlayabiliyor- dum. M2AMIGĞA editörü ile hazır- lanmış bir metin dosyası ikonunu klikleyerek yükleyin ve yaptığınız de- Bişiklikleri kaydedin. Sonra derleyi- ciyi başlatmak için istediğiniz M2AMIGA derleyici ikonunu klikle- yip yükledikten sonra arka arkaya is- tediğiniz kadar modülü derlemeniz mümkün. Son olarak derlenmiş ob- je dosyasının üzerine klikyaparak, bağlayıcıya onu diğer gerekli obje modüllerine bağlamasını söylüyorsu- nuz. Bu deneyimsiz bir programcı için M2AMIĞA ile çalışmayı çok ko- laylaştırıyor. Ayrıca sistemi CLI'den kullanabilir ve her bir dosya için mey- dana gelen ikon kalabalığını tama- men ortadan kaldırabilirsiniz. Dökümantasyon, esasen EMACS'- ın -popüler bir programlama editörü- basitleştirilmiş bir verisyonu olan edi- törün çalışmasını yeterli şekilde açık- lıyor. TDI editörü gibi hatalı dosya- ları okuyabilen M2AMIGA editörü- nün problemleri düzeltmede oynadı- Bi rol önemli. Kılavuz derleyicinin, kendisini ve programlarınızı nasıl or- ganize ettiğini ve Modula-2 dizaynı- nın esaslarından bazılarını açıklıyor. Sistemi pazarlayan şirket olan Inter- face Technologies bir SHDHD, özel amaçlı kütüphaneler ve bir programcı paketini (sonuncunun ne işe yaradı- ği pek açık değil) kapsayan ek yazı- lım desteği sağlıyor. Yazılım hazırla- mak için fena olmayan bir sistem. BENCHMARK MODULA-2 Paramı gözönüne aldığımda, en son çıkan Modula-2 derleyicisi aynı zamanda en iyi olanı. Benchmark pa- keti eleştirilmesi güç bir entegre editör-derleyici ve bağlayıcı kullanı- yor. Editör, EMACS tipinde ama olanakları azaltılmak yerine daha da genişletilmiş. Yazılımımızı düzenle- dikten sonra sadece bir fonksiyon tu- şuna basarak (paketle birlikte bir klavye maskesi de hediye ediliyor) derleyici yükleyip modülünüzü seri bir şekilde derleyebilirsiniz. Eğer her- hangi bir hata olursa dosyayı hemen 69