Amiga Dünyası sayı 1, sayfa 28

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 28

Merhaba! Bana Amiga ve C dili hakkında bir yazı dizisi hazırlama görevi verildiğinde, önceleri bir türlü nereden başlayacağımı bilemedim. C, o kadar geniş ve etkili olanaklara sahip bir dil ki, onu böyle bir yazı dizisiyle anlatmanın mutlaka bir yerlerde eksikler bırakacağını düşünüyordum. Fakat sonra bu yazı dizisinin amacının sizi C ustası yapmak değil, size C'nin olanaklarını sunarak ve biraz da alıştırma yaptırarak gerisini sizin çalışmanıza bırakmak olduğunu düşündüm. Gerçekten de bir dergide C'yi herkesi usta yapacak kadar anlatmak seneler sürecek bir iş. Dolayısıyla kendime bazı hedefler saptadım ve bunları göz önüne alarak Amiga'nın başına geçip yazı dizisini yazmaya başladım. Şimdi size bu hedefleri, yazı dizisinde kullanılacak bazı sembolleri, gerekli olabilecek bazı kaynak kitapları ve yazı dizisinin iyice anlaşılması için bence önemli olan öğeleri açıklamak istiyorum:

Öncelikle bu dizinin amacı; size genel bir C bilgisi vermek yani C'nin sunduğu olanakları size aktarmak, dilin komutlarını tanıtmak (aslında pek fazla değil ama!), onu diğer dillerden ayıran özellikler üzerinde durmak ve Amiga ile C birlikteliğinin sonuçlarını görmektir. Dili size anlatırken karşılaşılacak en önemli sorunlardan biri, dilin İngilizce terimler kullanması. Bundan dolayı ben terimleri size yazının içinde yeri geldikçe açıklamayı daha uygun buldum. Bu amaçla yazının tümünde kullanılacak olan bazı semboller var. Semboller şunlar:

1) Parantez içinde "İng:" sembolü: Bu sembol "İng." yazısından sonra gelen sözcüğün parantezden önceki kelimenin programcılık dilindeki İngilizce karşılığı olduğunu gösterir. Örneğin "dizi (İng: array)" demek dizinin programcılık dilindeki İngilizce karşılığının "array" olduğunu gösterir.

2) Parantez içinde "Tk:" sembolü: Bu sembolde "Tk." yazısından sonra gelen sözcüğün parantezden önceki kelimenin Türkçe karşılığı olduğunu belirtir. Yani "array (Tk: dizi)" array'in Türkçe karşılığının dizi olduğunu gösterir. Ayrıca bu İngilizce kelimelerin söyleniş tarzı için bir İngilizce sözlüğe bakılmasında da bence yarar var.

Gerekli olabilecek kaynak kitaplara gelince: C konusunda yazılmış birçok kitap var. Fakat bunlardan en önemlisi dilin yaratıcıları Dennis M. Ritchie ve Brian M. Kernighan tarafından yazılmış olan "The C Programming Language" adlı kitap. Bu kitap C hakkındaki tüm bilgileri içermekte ve C'nin referans kitabı olarak tanımlanmakta. Yazı dizim de bu kitaba paralel olarak ilerleyeceğinden kitap oldukça önemli. Ayrıca yazı dizisindeki tüm programların yazıldığı "Aztec C V3.6"nın kullanıcı kitabının da sizin için yararlı olacağını söylemeliyim. Yine "Aztec C" ile ilgili bir program olan ve programlarınızdaki hataları bulmaya yarayan "Aztec C Source Level Debugger"ın kullanıcı kitabı da oldukça önemli. Öyleyse gerekli olabilecek üç kaynak var:

1) The C Programming Language 2) Aztec C Reference Manual 3) Aztec C Source Level Debugger Reference Manual

Yukarıda da belirttiğim gibi yazı dizisindeki program örnekleri "Aztec C" için verileceğinden, önce gidip almanız gereken birkaç program var. Bunlar:

1) Aztec C V3.6 2) Aztec C Source Level Debugger 3) Power Windows Bunlardan sonuncusu Amiga'daki C kullanımına yönelik bir program. Power Windows'un yardımıyla pencere, menü gibi program elemanlarının oldukça uzun olabilen geliştirme zamanı önemli ölçüde kısaltılabilmekte.

Son olarak yazının genel karakteri hakkında birkaç şey söylemek istiyorum:

Yazı dizimizi okurken göz önünde bulundurulması gereken önemli bir konu var. Bu da dizinin genel bir programlama bilgisine sahip olunduğunu kabul etmesi. Dolayısıyla en azından BASIC'in iyi bilinmesi çok önemli. Kısaca bence C ilk öğrendiğiniz dil olmamalı. Bu hem öğrenme zamanınızı uzatır, hem de dilden soğumanıza neden olabilir. Ayrıca CLI bilginizin iyi olması da önemli bir faktör. Yazının gelişme aşamaları ise şöyle olacak:

1) Amiga programcılığı hakkında birkaç söz,

2) C'nin genel özellikleri ve tarihçesi, 3) "Aztec C" ile ilgili bilgiler, 4) C dünyasının içine giriş, 5) C 6) Amiga ile C uygulamaları. Evet, böylece yazı dizimiz başlama aşamasına geldi. Şimdi isterseniz yukarıda belirttiğim sıraya göre ilerleyelim:

Amiga programcılığı denince akla hemen birçok programlama dili geliyor. Örneğin

BASIC, PASCAL, FORTH, C, FORTRAN, MODULA 2, LISP gibi. Doğal olarak ilk program yapma deneyimleri genelde bilgisayarın yanında standart olarak verilen Amiga-BASIC ile elde ediliyor. Bu BASIC öncellerine göre oldukça hızlı ve kaliteli. Fakat belirli bir zaman sonra BASIC'in yetersiz kaldığı alanların varlığı ortaya çıkıyor ve programcılar başka seçeneklere yöneliyorlar. Bu yetersizliklerin en önemlileri arasında; dilin Amiga'nın tüm olanaklarından etkin bir biçimde yararlanmaması, hızının yavaş olması, bazı komutların aksaklıkları, az komut sayısı ve modüler programlamanın pek kolay olmayışı sayılabilir, işte programcıların yöneldiği seçeneklerin en güçlülerinden biri yazı dizimizin konusu C.

C Amiga programcılığında en çok kullanılan birkaç dilden biri. Özellikle büyük boyutlu ve genel amaçlı programlarda sıkça kullanılan bir dil. Acaba programcıları C'ye iten ne? İsterseniz bu soruyu C'nin genel özelliklerini görerek açıklayalım:

NEDİR BU C?

C genel amaçlı bir programlama dilidir. Yani özel bir uygulama için düzenlenmemiştir (örneğin mühendislik uygulamaları için düzenlenen Fortran veya ticari uygulamalar için hazırlanan Cobol gibi değildir). C'nin bize sundukları arasında modern program akışı, veri structure'ları (Tk. yapı, düzen), zengin işlem seti sayılabilir. C pek de yüksek seviyeli bir dil değildir. Burada yüksek seviyeli dil ile anlatılmak istenen şudur: Eğer bir dil kullanıcının hemen anlayabileceği veya işlevini tahmin edebileceği bir komut dizini kullanıyorsa yüksek seviyeli bir dil (Örneğin BASIC gibi. PRINT diye bir komut gördüğünüzde bunun yazma işi ile ilgili bir kavram olduğunu veya INPUT diye bir komut gördüğünüzde bunun veri girişiyle ilgili bir kavram olduğunu tahmin edebilirsiniz), aksi halde ise düşük seviyeli (Örneğin assembler gibi. Dcb diye bir komut gördüğünüzde bunun bir byte uzunluğunda sabit tanımla demek olduğunu herhalde anlamadınız!) bir dildir. C için orta seviyeli bir dil demek en doğrusu olacaktır. Çünkü C her iki tür dil sınıfının -yüksek ve düşük- özelliklerine sahiptir. C dili ilk olarak UNIX (Mini ve yeni mikro bilgisayarlar dünyasında oldukça yaygın bir işletim sistemi) işletim sistemi için sistemin makinadan makinaya aktarılması sırasında çıkan sorunların üstesinden gelmek için Dennis Ritchie tarafından yazılmıştır. Daha sonra da UNIX'in yazımı için kullanılmıştır. Böylece yaratılan C'nin esnekliği onu hiçbir makineye bağlı yapmamış bu da dilin makinadan makinaya uyarlanmasında büyük kolaylıklar sağlamıştır. C'nin uyumluluğu, yani bir makinede yazılan programın diğer bir makinede çalışması olanağı oldukça fazladır. Kısaca eğer kullandığınız makinaya ait ve başka makinalarda bulunmayan bir özelliği kullanmadıkça yazdığınız program başka bir makinada çalışacaktır. Bundan dolayıdır ki C genellikle sistem programlama dili olarak anılır. Fakat dil hemen hemen tüm uygulamalarda kullanılabilir.

Şimdi de C hakkında biraz tarihsel ve teknik bilgi:

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