Commodore sayı 8, sayfa 18

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 18

Fakat modüle edilmiş program çalışmasının bazı koşulları vardır: Tek tek her modülün “dışarıya” yönelik iyi tanımlanmış “bağlantı yerleri” olması zorunludur. Bu sayede, modülleri gereklere göre seçmek ve yerleştirmek mümkün olabilecektir. Fakat diğer yandan, modüllerin “iç yaşantısı” herhangi bir şeyle “dışarıdan” etkilenmemelidir. Bu nedenle Basic, bu tür programlamaya hiç uygun değildir: Alt programların kendilerine özgü adları yoktur, satır numaralarıyla çağrılırlar (kötü dökümantasyon); parametre aktarımı olanaksızdır, dolayısıyla belirlenmiş bağlantı noktaları yoktur ve son olarak alt programda değiştirilen her değişken, hemen ardında ana programda da değişmektedir. Pascal'ın da yaratıcısı olan Profesör N.Wirth tarafından geliştirilen Modula, Pascal'da kısmen varolan modülasyon olayının tutarlı ve bütünsel bir hale gelmiş olduğu ilk dildi. Her Modula programının kendisi de bir modüldür ve dolayısıyla başka programları alt modüller olarak kullanabilir. Bu bağlamda, dilin kullanıcıya sunduğu standart modüllerle kullanıcının kendisi tarafından yazılan (program) modülleri arasında hiçbir fark yoktur. Her modül kendi içinde tümüyle kapalıdır. Yani, veri türleri, fonksiyonlar veya değişkenler hakkında yapılmış tanımlamalar yalnızca modül içinde geçerlidir. Herhangi bir modüldeki tanımlamaların diğer modüllerde de geçerli kılınması istendiğinde, bunların modülden “ihraç edilmesi” ve diğer modüllere “ithal edilmesi” gerekir. Böylece, Basic alt programlarında sık sık karşılaşılan, istenmeyen yan etkiler tümüyle engellenmiş olur. Tabii ki, her bir modül de kendi içinde tümüyle yapılandırılmış biçimde oluşturulmuştur. Bir Modula programcısı, GOTO komutunu kesin olarak ve çabucak unutmalıdır. Bunun yerine, Pascal'dan alışılmış olan (FOR...TO..., DO...END, REPEAT...UNTIL, WHILE...END) gibi döngü yapıları ve ek olarak, LOOP ve

END arasındaki tüm komutları EXIT'te belirtilmiş olan koşul yerine gelinceye kadar, yerine getiren LOOP...EXIT...END döngüsü vardır. Bu döngü yapıları, C64'ün Commodore 3.5-Basic'inde veya C128'in 7.0-Basic'inde bulunmaktadır. Bu da, yapılandırılmış programlamanın Basic ev bilgisayarları alanında giderek daha çok kullanılacağının bir göstergesi olarak kabul edilebilir. Fakat Modula henüz Commodore bilgisayarlarında kullanılamamaktadır.

(Basic'e göre yaklaşık 50 kat hızlı). C ile programlama, aslında, “yapılandırılmış programlama” ilkesine göre her biri sorunun bir bölümünü çözen fonksiyonların yazılmasından oluşuyor. Toplam sonuç, daha sonra bu fonksiyonların sistemli bir biçimde birleştirilmesiyle sağlanıyor. Bu bağlamda, C, bir yandan Pascal'da büyük bir yakınlık gösterirken, diğer yandan mevcut hardware'in (işlemcinin) daha iyi kullanılmasını yarayacak ek komutlar ve operatörler sağlar. Ör-

Kısaltmalı Pascal: C

C dilinin gelişmesi, kendisi de C ile yazılmış olan 16 bitlik işletim sistemi Unix'in gelişmesiyle çok yakından ilişkili. Bu dilin adının C olmasının nedeni, aslında son derece basit. Digital Equipment mikro bilgisayarları için programcı desteği olarak 1970 yılında özel diller geliştirilmişti. Bunlara alfabe sırasına uygun olarak A ve B adları verilmişti. B dili, 1971'de, o zamanlar Assembler ile yazılmış durumda olan Unix sistemini kolayca başka bir bilgisayara aktarabilmek için kullanıldı. O sıralarda Bell Laboratuvarları'nda programcı olarak çalışmakta olan Dennis Ritchie, bu dilin yeteneklerini keşfetti, onu daha da geliştirdi ve inceltti. Ortaya çıkan ürünü de C olarak adlandırdı. Unix, kısa süre sonra, 1973'te, C ile

yazıldı. Dolayısıyla, bir yüksek dille yazılmış bir işletim sistemi oldu. Bunun gerçekleşmesini sağlayan şey, C'nin, o dönemde erişilebilecek en inceltilmiş programları oluşturabilecek yapılandırılmış bir dil olmasıydı. C ile yazılmış programlar bir yandan son derece derli toplu (bellekte çok az yer kaplıyor) diğer yandan da çok hızlı. Örneğin, değişkenlerin değerlerinin yükseltilmesi ve indirilmesine yarayan Assembler programlamasına dayalı özel komutlar gibi. Ayrıca yüksek programlama dilleri arasında, değişkenleri sicil değişkeni olarak deklare edebilme yeteneğine sahip olan tek dildir. Bunun anlamı, bu tür değişkenlerin olanaklar elverdiği ölçüde, iç işlemci sicillerinde tutulabilmesidir. Bu da, normal olarak kullanılan bellek değişkenlerinde olduğundan çok daha hızlı bir erişim sağlar. Bu noktada, dilin gelişmesinde, yalnızca, mütevazi üç siciliyle (A,X,Y) pek büyük olanaklar sağlayamayan 6502 işlemcisine güvenilmediği anlaşılmaktadır. Aslında, biraz daha hızlı bir erişim sağlayabilen Zero-Page de ek bir sicil olarak kullanılabilir. Diğer yandan, C'nin, 64 bitlik süper işlemciler için tasarlanmamış olduğunu belirtelim. Büyük makinelerde kullanılan bu tür işlemciler kural olarak çok fazla sayıda sicil içeriyorlar ve böyle bir makine için yapılmış iyi bir Fortran derleyici, bu sicilleri doğal olarak programın optimize edilmesi için kullanıyor. Dolayısıyla, C, kural olarak 16 ve 32 bitlik makineler için uygun. 8 bitlik işlemcilerde ise C, pratikte yalnızca Z80 ile kullanılabiliyor (CP/M'de). Fakat C64 için de bir C versiyonu hazırlanıyor.

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