C/C++ Programcılığı: Storm C/C++ V2.0


Amiga işletim sistemi bir UNIX varyasyonudur ve tamamına yakını C dili ile yazılmıştır. Bu nedenle Amiga yazılım şirketleri ve programcıları genellikle C/C++ dilini tercih ederler. Bildiğiniz gibi C kaynak kodlarının bir BASIC kodu gibi bir editöre yazıp RUN komutu vererek çalıştıramazsınız. C dilinde yazılmış kodu çalışır hale getirmek için bir derleyici yazılıma gerek vardır. PC'de bu işlem Turbo-C veya Borland-C gibi yazılımlarla yapılırken, Amiga'da Haage&Partner firmasının Storm C/C++ V2.0 isimli yazılımı ile yapılmaktadır. Eskiden bir C kaynak kodunu derlemek için bir sürü Shell/Dos komutu yazmak zorundaydı programcılar, ancak grafiksel ara birim tekniklerinin (GUI) gelişmesi ile bu işler çok kolaylaştı. Storm C'de de kaynak kodunu bir editörle yazıp kaydetmek dışında, bütün işlemler fare aracılığı ile gerçekleştiriliyor. Storm C'yi Amiga'nızda çalıştırabilmeniz için mutlaka geniş bir sabit diske ve en az 4 MB RAM belleğe gerek var, ayrıca 68030 veya daha üstü bir işlemciniz varsa derleme süresi oldukça kısalacaktır. Storm C 2.0 Amiga'da kullanılan 68000 çipinden 68060 çipine kadar bütün işlemcileri ve 68881 ve 68882 matematik işlemcileri desteklemekte. Program, Amiga OS 3.0 ve OS 3.1 için program yazmak için gerekli include ve header dosyaları ile birlikte geliyor.

Storm C/C++ üniversitelerde okutulan standart ANSI C/C++ dilini tamamen desteklemekte. Yani herhangi bir ANSI C/C++ kitabı alıp C dilini öğrenmeye başlayabilirsiniz, ancak tabii ki PC için yazılmış grafik çizen C/C++ kaynak kodları derlendiğinde hata verecektir, çünkü her ayrı işletim sistemi için pencere, ekran, komutları C dilinde farklıdır.

Storm C ile birlikte editör olarak StormEd veya ColdEd adlı programları kullanabilirsiniz, ben GoldEd'i kullanmanızı tavsiye ederim, çünkü çok daha kullanışlı bir editör. Storm C, yazdığınız kaynak kodundaki hataları çok ayrıntılı bir şekilde size sunuyor ve bu hataların nedenleri hakkında size bilgi veriyor. Storm Debug programı ile de programınızı çeşitli mantıksal hatalardan kurtarabilirsiniz. Optimize ile de programı en az büyüklükte en hızlı çalışır hale getirebilirsiniz.

Hazır size Storm C'yi anlatmışken, isterseniz Amiga Workbench'inde bir pencere açıp onu 30 saniye açık tutup programdan çıkan bir C kaynak kodunu derleyelim birlikte. İlk önce Storm C'yi sabit diskinize kurun (install). Şimdi GoldEd veya StormEd ile aşağıdaki kaynak kodunu hatasız olarak yazın ve sabit diskinize "Ornek.c" adı altında kaydedin. Şimdi Storm C V2.0'ı çalıştırın ve "Project" menüsünden "New"ı seçin.

Ekranda yeni pencere açılacak, yine "Project" menüsünden "Add File(s)"ı seçin ve orada da daha önce yazıp sabit diske kaydettiğiniz "Ornek.c" programını seçin. Ornek.c programı ekranda açılan pencerede yerini alacaktır. Evet, yine "Project" menüsünden "Select Executable"ı seçin ve çıkan pencerede "Ornek.exe" yazıp Enter'a basın. Derlenen kaynak kodu "Örnek.exe" adı ile sabit diske kaydedilmesini sağladınız artık.

Şimdi "Compile" menüsünden "Make"i seçtiğinizde, eğer yazdığınız kodda hata yoksa, derleme işlemi yapılacak ve sonuçta çıkan exe dosyası "Ornek.exe" adı ile sabit diske kaydedilecektir. Eğer kaynak kodunda hata varsa, düzeltip "Ornek.c" dosyasını tekrar kaydedin ve "Compile" menüsünden "Make" ile tekrar derleyin.

İsterseniz biraz da örnek olarak verdiğimiz programı inceleyelim. Amiga'da pencere ve ekran açma gibi işlemler "intuition.library" adı verilen dosya üzerinden yapılır, ilk satırda bu iş için gerekli verileri içeren "intuition.h" adlı dosyayı derleyiciye yüklüyoruz.

"Struct NewWindow..." diye başlayan satırda 50, 25 koordinatlarından 400, 200 koordinatlarına kadar uzanan, başlığı "Benim ilk Pencerem!!" olan bir pencere tanımlıyoruz. Daha sonra bu pencere açılıyor ve 30 saniye beklendikten sonra programdan çıkılıyor.

Örnek Program Kaynak Kodu:

/* Amiga Workbench'inde kucuk pencere acan kisa bir program */

#include 
struct IntuitionBase *IntuitionBase;
struct Window *pencerem;
struct NewWindow yeni_pencere=
{
 50,	/* LeftEdge Pencerenin Sol Ust Kosesinin X Koordinati */
 25,	/* TopEdge Pencerenin Sol Ust Kosesinin Y Koordinati */
 400,	/* Width 400 piksel genislik. */
 200,	/* Height 200 piksel yükseklik. */
 0,
 1,
 NULL,
 SMART_REFRESH|
 WINDOWCLOSE|
 WINDOWDRAG|
 WINDOWDEPTH|
 WINDOWSIZING|
 ACTIVATE,
 NULL,
 NULL,
 "BENIM ILK PENCEREM!!", /* Title Pencerenin basligi */
 NULL,	/* Screen Pencere Workbench'te acilacak */
 NULL,
 80,	/* MinWidth Pencerenin 80 x 30'dan kucuk */
 30,	/* MinHeight 450x250'den buyuk olmayacak. */
 450,
 250,
 WBENCHSCREEN
};

main()
{

 IntuitionBase = (struct IntuitionBase *)
 OpenLibrary ( "intuition.library", 0 );

 if( IntuitionBase == NULL)
   exit();

 /* Burada pencereyi aciyoruz */
  pencerem = (struct Window *)
OpenWindow( ¥i_pencere );

 if(pencerem == NULL)
 {
  CloseLibrary( IntuitionBase );
  exit();
 }
 
 /* Pencereyi actik, hersey yolunda. */
 /* 30 saniye bekletme yapalım */

 Delay( 50 * 30);

 /* Pencereyi kapatalim */

 CloseWindow( pencerem );
 CloseLibrary( IntuitionBase );
 /* SON */

Eğer internet bağlantınız varsa www.haage-partner.com adresinden Storm C V2.0 için 5, 6, 7, 8 ve 9 numaralı Update dosyalarını alabilirsiniz. Önümüzdeki günlerde Haage&Partner firması Storm C/C++'nın V3.0 sürümünü piyasaya sürmeye hazırlanıyor. Bu sürüm ile PowerPC kartlı Amiga'lar pOS işletim sistemi için C programları derlemek mümkün olacak. Storm C/C++ V3.0 ile hem PowerPC işlemciyi hem de 680X0 işlemciyi aynı anda paralel olarak kullanan programlar derlemek mümkün.

Sinan Gürkan