C (programlama dili)

C Dilinin erken tarihi

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 dili yorumlanan bir dildi ve veri tipi desteği yoktu. Yeni donanımların farklı veri tiplerini desteklemesi, ve yorumlanan dillerin çalışma zamanında görece yavaş olması sebebi ile, C dili, tip desteği eklenmiş ve derlenen B olarak geliştirildi.
"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.

ANSI C ve ISO C dilleri

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...

"Merhaba, dünya" örneği

Merhaba, dünya örneği ilk olarak The C Programming Language kitabının birinci baskısında kullanıldı ve birçok programlama kitabında kullanılan tanıtıcı örnek haline geldi. Bu örnek ekrana ya da terminal ekranına "merhaba, dünya" yazar.
Kitaptaki kodun orijinal hali:
#include <stdio.h>main(){
    printf("merhaba, dünya\n");}
Standart olarak onaylanan "merhaba, dünya" versiyonu:
1 #include <stdio.h>2 3 int main()4 {5     printf("merhaba, dünya");6 7     return 0;8 }
1. satır : Bir önişlemci komutudur ve daha program derlenmeden önce devreye girerek istenilen değişiklikleri kaynak dosya üzerinde gerçekleştirir. Bu programda stdio.h (standart input-output) başlık dosyasını programa dahil eder. Bu başlık dosyasında standart giriş-çıkış fonksiyonlarının prototipleri mevcuttur. Burada programdaki komutun amacı printf fonskiyonunu programa dahil etmektir.
2. satır : Bu satırda programda işe main fonksiyonun tanımlanmasıyla başlanmıştır. main fonksiyonun C dilinde özel bir amacı vardır. Programın çalışma zamanında başladığı yer main fonksiyonudur.
3. satır : main fonksiyonunun başladığı yeri belirtir.
4. satır : Bu satırda "merhaba, dünya" yazısını (karakter dizisini) ekrana bastırmak için printf fonksiyonu çağrılır ki bu fonksiyonu 1. satırdaki stdio.h  başlık dosyası ile programa dahil etmiştik.
5. satır : return kodu main fonksiyonumuzu 0 geri dönüş değeriyle sonlandırır.
6. satır : main fonksiyonunun bittiği yeri belirtir.

İ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.