IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 21 Nisan 2010, 13:10   #1
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
C Programlama Dili




C (programlama dili)

AT&T Bell laboratuvarlarında, Ken Thompson ve Dennis M. Ritchie tarafından UNIX İşletim Sistemi' ni geliştirebilmek amacıyla B dilinden türetilmiş yapısal bir programlama dilidir. Geliştirilme tarihi 1972 olmasına rağmen yayılıp yaygınlaşması Brian W. Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin (Microsoft Windows, GNU/Linux, *BSD, Minix) yapımında %95' lere varan oranda kullanılmış, halen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken heryerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır.
Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen bir alt küme C++ diline geçmişlerdir.


Dilin geçmişi

Dilin erken tarih

C'nin ilk gelişme safhaları 1969 ile 1974 arasında AT&T Bell Laboratuvarları'nda gerçekleşti. Ritchie'ye göre, en yaratıcı devre 1972 idi. Dilin pek çok özelliği "B" adlı bir dilden türediği için, yeni dile "C" adı verildi. "B" adının kökeni konusunda ise söylentiler değişik: Ken Thompson B'nin BCPL programlama dilinden türediğini söylemektedir, ancak Thompson eşi Bonnie'nin onuruna adını Bon koyduğu bir programlama dili de geliştirmiştir.
1973'e kadar C yeterince güçlü bir hale gelmiş ve ilk başta PDP-11/20 assembly dili ile yazılan UNIX'in çekirdeğinin büyük kısmı C ile yeniden yazılmıştı.
Böylece UNIX, çekirdeği bir assembly dili ile yazılmayan ilk işletim sistemlerinden biri olmuştu.


C dilinin geçmişi

1978'de Ritchie ve Brian Kernighan The C Programming Language (C Programlama Dili) kitabının ilk baskısını yaptılar. C programcıları tarafından "K&R" olarak bilinen bu kitap, C dilinin gayriresmi standardı olarak kullanıldı. C'nin bu versiyonu bugün "K&R C" olarak adlandırılır. Bu kitabın ikinci baskısı ise aşağıda anlatılan ANSI C standardını içerir.
K&R dilde şu değişiklikleri yaptı:
struct veri tipleri eklendi
long int veri tipi eklendi
unsigned int veri tipi eklendi
=+ operatörü += olarak değiştirildi (çünkü =+ C'nin leksikal ayrıştırıcısının kafasını karıştırıyordu)
K&R C genellikle tüm C derleyicilerinin desteklemek zorunda olduğu dilin en temel kısmı olarak kabul edilir. Uzun yıllar boyunca, ANSI C'nin kabul edilişinden sonra bile, yüksek taşınabilirlik (portability) istendiğinde, K&R C, C programcıları tarafından "ortak payda" olarak kabul edilmiştir çünkü bazı derleyiciler henüz ANSI C'yi desteklemek üzere güncellenmemişlerdi ve zaten iyi yazılmış bir K&R C programı aynı zamanda ANSI C'yi de destekler.
K&R C'nin yayımlanmasını izleyen yıllar içine dile AT&T'nin derleyicilerinin ve bazı başka bilgisayar üreticileri tarafından desteklenen kimi "gayriresmi" özellikler eklendi. Bunların içinde aşağıdaki özellikler de vardı:
void fonksiyonlar ve void * veri tipi
struct ya da union veri tipi döndüren fonksiyonlar
her bir struct'ın alan adları için ayrı bir ad alanı
struct veri tipleri için atama
bir nesneyi yazmaya karşı korumalı yapmak için const anahtar sözcüğü
standart bir C kütüphanesi
enumeration'lar
single-precision float tipi


ANSI C ve ISO C
1970'lerin sonunda C, en çok kullanılan mikrobilgisayar dili olarak BASIC'in önüne geçmeye başladı. 1980'lerde ise, IBM PC ile kullanılmak üzere benimsenmesiyle birlikte popülaritesi iyice artmaya başladı. Aynı zamanda, Bell Laboratuvarları'nda Bjarne Stroustrup ve iş arkadaşları C'ye nesneye yönelim eklemek üzere çalışmaya başlamışlardı. C bugün UNIX dünyasında en çok kullanılan dil olarak kalırken, Stroustrup'un geliştirip C++ adını verdiği dil Microsoft Windows işletim sisteminde en önemli dil oldu.
1983'te Amerikan Ulusal Standartlar Enstitüsü (ANSI) bir C standardı oluşturmak için bir kurul oluşturdu. Uzun ve yorucu bir çalışmadan sonra, bu kurul standardı 1989'da tamamladı ve standart ANSI X3.159-1989 "Programming Language C (C Programlama Dili)" olarak yayımlandı. Dilin bu versiyonu genellikle ANSI C olarak adlandırılır. 1990'da bu standart, küçük değişikliklerle Uluslararası Standartlar Örgütü (ISO) tarafından da benimsenip ISO/IEC 9899:1990 olarak yayımlandı.
ANSI C'yi oluşturmanın amaçlarıdan biri K&R C'yi içeren ve dile sonradan katılan "gayriresmi" özellikleri de dile katan bir standart oluşturmaktı. Standart k fonksiyon prototiplerini ve daha yetenekli bir önişlemciyi de standarda ekledi.
Bugün artık ANSI C neredeyse tüm derleyiciler tarafından desteklenmektedir. Günümüzde yazılmakta olan C programlarının çoğunluğu ANSI C standardına uygun olarak yazılmaktadır. Yalnızca standart C kullanılarak yazılmış bir program, standarda uyumlu her derleyici ile doğru bir biçimde derlenip çalıştırılabilir. Ancak, standart olmayan kütüphaneler kullanılarak yazılmış programlar belli bir platform ya da derleyici gerektirebilirler...


C99
ANSI standartlaştırma işleminden sonra C dili uzun bir süre oldukça sabit kaldı, ancak C++ gelişmeyi sürdürdü. Buna bağlı olarak, 1990'ların sonunda ISO standardı güncellendi ve 1999'da ISO 9899:1999 olarak yayımlandı. 2000 yılının Mart'ında ise, "C99" olarak bilinen bu standart ANSI tarafından da benimsendi.
C99'un yeni özellikleri şöyle özetlenebilir:
for ve bu gibi iterasyon ifadelerinde parantez içi ilk deklarasyonlara izin verilmesi
Örneğin for(int i=0; i<10; ++i) deyimi c99 da geçerli iken c89 da geçerli değildir...
inline fonksiyonlar
C++'da olduğu gibi artık değişkenler programın herhangi bir yerinde tanımlanabilirler
long long int, boolean, complex gibi yeni veri tipleri
değişken uzunluğa sahip diziler
C++'dan alınan, // ile başlayan tek satırlık program içi açıklamalar
snprintf() gibi yeni kütüphane fonksiyonları
stdint.h gibi yeni başlık dosyaları
C99'u bugün GCC ve bazı başka derleyiciler desteklemekteyken, Microsoft ve Borland derleyicilerine C99 desteği eklemekte isteksiz davranmaktadırlar.


Örnek programlar

İsterseniz şimdi küçük bir C programına göz atalım... #include deyimi ile "Standart Giriş Çıkış Kütüphanesi"ni yani "stdio.h"ı programımızı derleyecek olan derleyiciye, örneğin Microsoft Visual C++'a tanıtıyoruz. Yani derleyicimiz programın temel işleyişi sırasında "stdio.h'a yani Standart Giriş Çıkış Kütüphanesine" başvuracak. Kütüphanelerimizi #include<kütüphane> şeklinde deklare ediyoruz.
Şimdi ise programımızın ana iskeletini oluşturmak için int main fonksiyonu tanımlıyoruz. int main() ile int main(void) aynı deklarasyondur. (void; geçersiz, etkisiz demektir.) Parantez içine aldığımız void deyimi ile main fonksiyonuna yani ana programa herhangi bir argüman (argüman; giriş parametresi, giriş değeri demektir) vermiyoruz. Bunun yanında neden int main dediğimizi de açıklayalım. Programın sonunda yani printf foksinu işleminden sonra int değer (yani integer - tam sayı) geri dönüş değeri yollayacağız. Bu daha önce de ifade ettiğimiz gibi, int main fonksiyonunu çağıran process e (eğer program windows tabanı altında çalıştırılıyorsa int main fonksiyonunu çağıran windows işletim sistemidir) bir değer döndürecek. Bu değer 0 dır ve return 0 şeklinde deklare edilir.
Hemen bazı atomları da açıklayalım. C dilinde { atomu ile bir fonksion deklare edeceğimizi, ; ile de yani noktalı virgülle de (biz buna programcılar olarak terminatör diyoruz, (terminatör sonlandırıcı atom demektir) bir deklarasyonu sağlarız.
Örneğe geri dönelim... printf foknsiyonu ile ekrana bir şeyler göstereceğiz. " atomu ile başlayarak ekranda göstereceğimiz harfleri yazmaya başlıyoruz, yine " atomu ile yazma işlemimizi sonlandırıyoruz.
return 0; deklarasyonu ile geri dönüş değerini deklare ediyoruz ve } atomu ile de ana fonksiyonumuzu kapatıyoruz.
İşte Örnek Programımız:
/* Ekrana yalnızca "Merhaba Vikipedi..."(tırnaksız) yazdırıp sona eren bir C Örneği */


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include <stdio.h> //standart input/output kütüphanesi #include <conio.h> //getch() komutu için gerekli olan kütüphane int main() { printf("Merhaba Vikipedi...\n"); getch() ; return 0; //geriye integer değer dönürülmesi gereken main fonksiyonuna döndürülen değer } /* herhangı bır cumlede bır harf arayan ornek bir c programı(asa42) */ #include<stdio.h> #include<conio.h> main() { char cumle[50], k ; int i, x=0; printf("bir cumle giriniz>"); gets(cumle); printf("aranacak karakteri giriniz>"); k=getche(); for (i=0;i<50;i++) if(cumle[i]==k)x++; if (x!=0) printf("\n%c karakteri cümlede %d tanedir..\n",k,x); else printf("\n%c karakteri cumlede bulunamamistir..\n",k); getch(); } /* İki sayıyı toplayarak sonucu ekrana yazdıran bir C Örneği */ #include<stdio.h> #include<conio.h> int main() { /* Kod bloğu açılıyor */ int sayi1,sayi2,toplam; /* Tamsayı(Integer) tipinde 3 adet değişken tanımlanıyor. */ printf("birinci sayiyi giriniz="); /* Ekrana "birinci sayiyi giriniz=" yazdırılıyor. */ scanf("%d",&sayi1); /* Kullanıcının girdiği sayı, sayı1 adlı daha önceden tanımlanmış tamsayı değişkene alınıyor. */ printf("ikinci sayiyi giriniz="); /* Ekrana "ikinci sayiyi giriniz=" yazdırılıyor. */ scanf("%d",&sayi2); /* Kullanıcının girdiği sayı, sayı2 adlı daha önceden tanımlanmış tamsayı değişkene alınıyor. */ toplam=sayi1+sayi2; /* sayı1 ve sayı2 adındaki tamsayı değişkenlerin içerisindeki değerler toplanarak, toplam isimli diğer tamsayı değişkenine aktarılıyor. */ printf("bu islemin sonucu:%d",toplam); /* printf() fonksiyonu yardımıyla toplam değişkeninin içeriği ekrana yazdırılıyor */ getch(); /* Herhangi bir tuşa basılması için imleci sabit tutuyor (aslında çok gereksiz...) */ /* Programın yapacağı iş sona erdiyse işlem önceliğini işletim sistemine "0"(hatasızım) diyerek bırakıyor. */ return 0; }/* Kod bloğu kapanıyor */ ya da /* Dosya üzerinde işlem yapabilen bir C Örneği*/ #include<stdio.h> #include<conio.h> #include<stdlib.h> FILE *in,*out; main() { int i,j; in=fopen("topla.in.txt","r"); out=fopen("topla.out.txt","w"); fscanf(in,"%d",&i); fscanf(in,"%d",&j); fprintf(out,"%d",i+j); getch(); } /*Adam Asmaca*/ #include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> int main() { char arr[][20]={"adana","kahramanmaraş","amasya","ankara","antalya","artvin","bilecik","bitlis","bolu","burdur", "bursa","denizli","edirne","erzincan","erzurum ","gaziantep","giresun","hakkari","hatay","mersin", "istanbul","izmir","kars","kastamonu","kayseri","kocaeli","konya","malatya","manisa","mardin", "ordu","rize","sakarya","samsun","siirt","sinop"," sivas","tokat","trabzon","tunceli", "van","yozgat","zonguldak","aksaray","bayburt" ,"karaman","batman","ardahan","yalova","kilis","osmaniye"}; char harf; char toplam[15]={'&','&','&','&','&','&','&','&','&','&','&','&', '&','&','&'}; int i,size=0,x,y=0,d=0,t=0; srand(time(NULL)); printf("bilin bakalim ben hangi ilim\n"); x=0+rand()%50; size=strlen(arr[x]); for(i=0;i<size;i++) { printf("__ "); } printf("\n"); while(y<5) { printf("\harfi giriniz: "); fflush(stdin); scanf("%c",&harf); for(i=0;i<size;i++) { if(harf==arr[x][i]) { toplam[i]=harf; d++; t++; } } if(d==0) { printf("\a"); y++; } if(d!=0) { for(i=0;i<size;i++) { if(toplam[i]!='&') { printf("%c ",toplam[i]); } else { printf("__ "); } } } else { printf("%d. hakkinizi doldurdunuz\n",y); if(y!=5) { printf("%d hakkiniz kaldi\n",5-y); } if(y==5) { printf("GAME OVER!!!\n"); printf("dogru cevap '%s' olacakti\n\n",arr[x]); } } if(t==size) { printf("\n\nTEBRIKLER !!!\n"); break; } d=0; printf("\n"); } printf("\n"); system("pause"); return(0); }

İlgili diller

C, doğrudan veya dolaylı olarak pek çok dili etkilemiş ve örnek olmuştur.
Örneğin: C++, Java, C#, Perl, PHP, JavaScript,Asp vb.


Bu Anlatım wikipedia.org Sitesinden Alıntıdır.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 23 Nisan 2010, 14:16   #2
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: C Programlama Dili




C bircok dilden daha hızlı bir dildir ( .NET Platform dillerine göre özellikle ) C ++ ile birlikte.
C dili NYP'ya destek vermez. Ayrıca Geniş içerikli projelerde yapici ve bozuculari ( constructor ve destructor ) illaki araniyor. Fakat C ye göre c++ da arayüz kullanmak daha kolay.

 
Alıntı ile Cevapla

Cevapla

Etiketler
dili, programlama


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
C++ Programlama Dili.. CoKraiL C ve C++ 0 19 Ekim 2010 17:11
Delphi (programlama dili) Spacely Delphi 0 22 Nisan 2010 22:48
Ruby [ Programlama Dili ] Nedir ? Ocean Programlama 0 27 Ekim 2009 17:20
C++ Programlama Dili Cemalizim C ve C++ 0 19 Temmuz 2008 15:09
Python Programlama Dili. Ocean GNU, Linux ve UNIX 0 16 Temmuz 2008 13:54