sım programlama sırasında bir kez da- ha karşımıza geldiğinde, daha önce ta- mamlanmış olan modül yeniden alı- nır ve kullanılır. Ayrıca, birden fazla küçük sorunu çözmek, büyük bir so- runu çözmekten daha kolaydır. “Mo- düle edilmiş programlama”'nın tutarlı bir biçimde kullanılmasıyla, program- lar uzun vadede çok daha rasyonel bir biçimde geliştirilebilecektir. Fakat modüle edilmiş program ça- lışmasının bazı koşulları vardır: Tek tek her modülün “dışarıya”” yönelik iyi tanımlarımış “bağlantı yerleri” ol- ması zorunludur. Bu sayede, modül- leri gereklere göre seçmek ve yerleş- tirmek mümkün olabilecektir. Fakat diğer yandan, modüllerin “iç yaşan- tı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ıy- la çağrılırlar (kötü dökümantasyon); parametre aktarımı olanaksızdır, do- layısıyla belirlenmiş bağlantı noktaları yoktur ve son olarak alt programda değiştirilen her değişken, hemen ar- dında ana programda da değişmekte- dir. Pascal'ın da yaratıcısı olan Profe- sör N.Wirth tarafından geliştirilen Modula, Pascal'da kısmen varolan modülasyon olayının tutarlı ve bütün- sel bir hale gelmiş olduğu ilk dildir. Her Modula psogramınır' kendisi de bir modüldür ve dolayısıyla başka programları alt modüller olarak kul- lanabilir. Bu bağlamda, dilin kullanı- cıya sunduğu standart modüllerle kul- lanı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, ver itürleri, fonksiyonlar veya değişkenler hakkın- da yapılmış tanımlamalar yalnızca modül içinde geçerlidir. Herhangi bir modüldeki tanımlamaların diğer mo- düllerde de geçerli kılınması istendi- ğinde, bunların modülden “ihraç edil- mesi” ve diğer modüllere “ithal edil- mesi'' gerekir. Böylece, Basic alt prog- ramlarında sık sık karşılaşılan, isten- meyen yan etkiler tümüyle engellen- miş olur. Tabit ki, her bir modül de kendi içinde tümüyle yapılandırılmış biçim- de oluşturulmuştur. Bir Modula prog- ramcısı, GOTO komutunu kesin ola- rak ve çabucak unutmalıdır. Bunun yerine, Pascal'dan alışılmış olan (FOR...TO..., DO...END, REPE- AT...UNTIL, WHILE...END) gibi döngü yapıları ve ek olarak, LOOP ve END arasındaki tüm komutları EXİT'te belirbelirtilmiş olan koşul ye- rine gelinceye kadar, yerine getiren LOOP...EXIT...END döngüsü var- dır. Bu döngü yapıları, C 16'nın Com- modore 3.5-Basic'inde veya C 128'in 7.0-Basic'inde bulunmaktadır. Bu da, yapılandırılmış programlamanın Ba- sic ev bilgisayarları alanında giderek daha çok kullanılacağının bir göster- gesi olarak kabul edilebilir. Fakat Mo- dula henüz Commodore bilgisayarla- rı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şlemci- nin) 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 ne- deni, aslında son derece basit. Digi- tal Eguipment mikro bilgisayarları için programcı desteği olarak 1970 yı- lında özel diller geliştirilmişti. Bunla- ra alfabe sırasına uygun olarak A ve B adları verilmişti. B dili, 1971'de, o zamanlar Assembler ile yazılmış du- rumda olan Unix sistemini kolayca başka bir bilgisayara aktarabilmek için kullanıldı. O sıralarda Bell Labo- ratuvarları'nda programcı olarak ça- lışmakta olan Dennis Ritchie, bu di- lin 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. Bu- nun gerçekleşmesini sağlayan şey, C'nin, o dönemde erişilebilecek en in- celtilmiş 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ı neğin, değişkenlerin değerlerinin yük- seltilmesi ve indirilmesine yarayan As- sembler programlamasına dayalı özel komutlar gibi. Ayrıca yüksek prog- ramlama dilleri arasında, değişkenle- ri sicil değişkeni olarak deklare ede- bilme 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 ge- lişmesinde, yalnızca, mütevazi üç si- ciliyle (A,X,Y) pek büyük olanaklar sağlayamayan 6502 işlemcisine güve- nilmediği anlaşılmaktadır. Aslında, biraz daha hızlı bir erişim sağlayabi- len Zero-Page de ek bir sicil olarak kullanılabilir. Diğer yandan, C'nin, 64 bitlik süper işlemciler için tasarlanma- mış olduğunu belirtelim. Büyük ma- kinelerde kullanılan bu tür işlemciler kural olarak çok fazla sayıda sicil içe- riyorlar ve böyle bir makine için ya- pılmış iyi bir Fortran derleyici, bu si- cilleri doğal olarak programın optimi- ze eilmesi için kullanıyor. Dolayısıy- la, C, kural olarak 16 ve 32 bitlik ma- kineler için uygun. 8 bitlik işlemciler- de ise C, pratikte yalnızca Z80 ile kul- İ K —-a CCI NNOCĞOr€ a 18