C Programlama
- Programlama Nedir?
- Programlama Dillerinin Kısa Tarihçesi
- Derleyici (Compiler) ve Yorumlayıcı (Interpreter) Nedir?
- C'de Program Yazmak için gerekli araçlar ve adresler
- C Programlama Dili
- İlk C Programım (Hello World)
- C Dilinde Kullanılan Anahtar Kelimeler
Bu ilk derste öncelikle Programlama Dili kavramı Programlama Dillerinin Kısa Tarihçesi, bir C programının derlenip çalıştırılabilmesi için Internet'te bulabileceğiz derleyicilerden ve İlk C Programlama deneyiminden bahsedeceğim.
Programlama Nedir?
Bilgisayar temel olarak hardware ve software olarak iki kavramdan oluşmaktadır. Kısaca programlar için bilgisayar donanımını kontrol eden komut kümelerinin bütünü diyebiliriz. Programlama dili ise bu komut kümeleriyle programcının bilgisayara ne yaptırması gerektiğinin tektipleştirilmiş yoludur.
Programlama dilleri, programcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar. Programcının işlemi yaparken uyguladığı programlama dilinin söz dizimine (syntax) uymak zorundadır. Her programlama dilinin kendine özgür bir söz dizimi vardır.
Şu ana kadar 150’den fazla programlama dili yapılmıştır. Bunlardan bazıları Pascal, Basic, C, C#, C++, Java, Cobol, Perl, Python, Ada, Fortran, Delphi ve 1C Enterprise'dır.
Programlama Dillerinin Kısa Tarihçesi
Programlama dilinin kökleri 1800'lü yıllara kadar gitmektedir. Ancak bu programlama dili ile yapılanlar bilgisayar programları değillerdi. Bizim bildiğimiz anlamda programlama dilleri, bilgisayarların ilk dönemlerinde yaratılan ve kullanımı çok zor olan makine dili ve assembly dilleriyle başlayan süreçtir. Modern programlama dillerinin tarihi 1940 yılına kadar dayanır. 1940’larda geliştirilen ilk elektronik bilgisayarlar için Assembly dili ile programlar geliştirilirken, bu dilin kullanımının zor olduğu görülmüş ve diğer programlama dilleri geliştirilmiştir. Konrad Zuse 1943-1945 yılları arasında Plankalkül adında bir programlama dili geliştirmiştir. Fakat o yıllarda bu dil için bir derleyici tasarlanmamıştır. Alan Turing, John von Neumann, John Mauchly, J. Presper Eckert ve Herman Goldstine tarafından geliştirilmiş olan ENIAC Coding System ve C10 ilk programla dillerinden kabul edilirler.
1950-1960 yılları arasında 4 önemli programalama dili geliştirilmiştir. Bunlar FORTRAN, LISP, COBOL ve ALGOL'dur. 1960-1978 Oslo’daki Norveç Hesaplama Merkezi tarafından 1962-1967 yılları arasında geliştirilen Simula ilk nesneye-yönelik programlama dilidir. 1964 yılında John George Kemeny ve Thomas Eugene Kurtz tarafından BASIC (Beginner’s All-purpose Symbolic Instruction Code) dili geliştirilmiştir. PASCAL dili Niklaus Wirth tarafından 1968-1969 yılları arasında geliştirilmiş ve 1970’te yayınlanmıştır. C programlama dili ise 1972 yılında Bell Laboratuarlarında Dennis Ritchie tarafından geliştirilmiştir (Dennis Ritchie daha önce Ken Thompson ile birlikte UNIX işletim sistemi ve B programlama dili üzerinde de çalışmıştır). Yine o yıllarda geliştirilen önemli dillerden biriside 1978 tarihli SQL dilidir.
1980 ve 1990 yıllarında ise Nesne Tabanlı Programlama hayatımıza girmiş ve halen geçerliliğini koruyan dillerin ortaya çıkmıştır. Bu dönemde ortaya çıkan önemli diller : C++ (1980) , Perl (1987) , Tcl (1988) , Ada (1983)
Windows tabanlı uygulama geliştirmeyi sağlayan Visual Basic, Microsoft tarafından 1991 yılında piyasaya sürüldü. Yine aynı yıl Java dili (1991), Sun Microsystems mühendislerinden James Gosling tarafından geliştirildi. Dinamik web sayfalarının yaratılmasında kullanılan PHP dili Rasmus Lerdorf tarafından 1995’te geliştirildi.
Ve 2000'lerde geliştirilmiş diller : C# (2001) , F# (2002) , Scala (2003) , Factor (2003), Go (2009)
Derleyici (Compiler) ve Yorumlayıcı (Interpreter) Nedir?
Bazı programlama dillerinde kaynak kodları derleme ve link işlemleri sonrasında makina kodlarına çevrilir ve .exe uzantılı bir dosya elde edilir. Elde edilen bu dosya hangi bilgisayarda olursa olsun ek bir program yükleme gereksinimi olmadan çalıştırılabilir. C, derleyici programlama dilleri olarak adlandırılan bu grubun içinde yer almaktadır. Diğer grup ise yorumlayıcı programlama dilleridir. Bu dillerde yazılan programların çalışabilmeleri için kaynak kodlarının bir yorumlayıcı tarafından yorumlanması gerektiğinden, programın çalışacağı her bilgisayara ayrıca yorumlayıcı bir program yüklenmelidir. Yorumlayıcı programın kaynak kodunu satır satır makine koduna çevirerek çalıştırır. Örneğin Java programlama dili bir yorumlayıcı programlama dilidir. Derleyici programı bir kez derlendikten sonra makina kodlarına çevrildiğinden, yorumlayıcı program ise her çalıştığında yorumlanması gerektiğinden, derleyici program daha hızlı çalışır.
Program yazmak için gerekli araçlar ve temin edebileceğiniz adresler
Program yazabilmek için temelde hiçbir şeye ihtiyacınız yoktur. Program yazmak için Windows’un not defterini veya Linux'da Gedit gibi programlarda kullanılabilir. Önemli olan yazılan programın derlenmesidir. Derleme işlemine “compile” ve derlemeyi yapan derleyiciyeyse “compiler” denir. C Programalama dili için internet üzerinden birçok Compiler bulabilirsiniz.
C programları veya kaynak kodları (source code) uzantısı .c olan dosyalarda saklanır. Kaynak kod, bir C derleyicisi (C compiler) ile nesne koduna (object code) daha sonra uygun bir bağlayıcı (linker) programı ile işletim sistemininde çalıştırılabilen (executable) bir koda dönüştürülür.
Eğer Linux kullanıyorsanız Richard Stallman tarafından açık kaynak koduyla sunulmuş bir derleyici olan GCC kurmanızı öneririm. Dev-C++, Code:Blocks, Eclipse ve Netbeans gibi IDE'ler yaygın olarak kullanılmaktadır. Windows işletim sistemi kullanıyorsanız GCC üzerine kurulmuş yapısıyla Bloodshed Dev-C++ tercih edilebilir. Bu tip derleyicilerde hata ayıklama işlemini kolaylaştırmak için kodlar farlı renkte gösterilir. Fakat program çıktıları için kullanılan ekran klasik DOS ekranıdır.
C Programlama Dili
C Programlama Dili genel amaçlı orta seviyeli ve yapısal bir programlama dilidir. 1969-1973 yılları arasında Bell Laboratuvarlarında Dennis Ritchie isimli araştırmacı tarafından Unix işletim sistemi ile kullanılmak için tasarlanmıştır. C, özellikle sistem programlamada sembolik makine dili (Asembler) ile tercih edilmektedir. İşletim sistemleri, derleyiciler ve debug gibi aşağı seviyeli sistem programlarının yazılımında yoğun olarak C programlama dili kullanılır. C'nin yayılması ve gelişmesi, büyük bir bölümü C dili ile yazılan UNIX işletim sisteminin popüler olmasıyla başlamıştır. C Programlama Dili, hemen her alanda kullanılmaktadır. Günümüzde nesneye yönelik programlama dilleri (C++, Java) ve script dilleri (JavaScript, JavaApplet, PHP) gibi programlama dilleri C Programlama Dili'nden esinlenmiştir. C taşınabilir (portable) bir dildir. Yani herhangi bir C programı hiçbir değişikliğe uğramadan, veya çok az bir değişimle, başka bir derleyicide ve/veya işletim sisteminde derlenebilir. Örneğin, Windows işletim sistemlerinde yazılan bir C kodu, Linux, UNIX veya VAX gibi işletim sistemlerinde de derlenebilir. Taşınabilirlik, herkesin kabul ettiği bir standart ile gerçekleştirilebilir. Bugün, C Programla Dili için American National Standards Institute (ANSI) kurumunun Mart 2000'de belirlediği C99: ISO/IEC 9899:1999 standartı Standart C olarak kabul edilmiştir. 1980'li yıllarda IBM firmasının kendi ürettiği kişisel bilgisayarda kullanmak üzere C dilini seçmesiyle dilin popülaritesi artmıştır.
C Programlama Dilinin Popülaritesinin temel nedenleri :
- C, en yaygın dildir. Programming Language Popularity
- C, iyi bir geliştirme ortamına sahiptir ve esnektir.
- C, özel komut ve veri tipi tanımlamasına izin verir.
- C, portable bir dildir.
- C, gelişimini tamamlamış ve standardı oluşmuş bir dildir.
- C, yapısal bir dildir. C kodları fonksiyon olarak adlandıralan alt programlardan oluşmuştur.
- C++, Java, JavaScript, JavaApplet, PHP, C#, ... gibi diller C dilinden esinlenmiştir.
İlk C Programım
/* ilk C programim */
#include <stdio.h>
#include <conio.h>
int main()
{
printf("Merhaba Dunya!n");
getch();
}
#include <stdio.h> #include deyimi, programda eklenecek olan başlık dosyanını işaret eder. Bu örnekte verilen başlık dosyası (header file) stdio.h dir. #include <stdio.h> ifadesi stdio.h dosyasının derleme işlemine dahil edileceğini anlatır.
#include <conio.h> getch gibi fonksiyonların tanımlı olduğu kütüphane olduğu için burada conio.h kullanılmıştır. conio.h input-output, gorsellik, text işleme gibi alanlarda kullanılan bir kütüphanedir.
main() özel bir fonksiyondur. Ana program bu dosyada saklanıyor anlamındadır. Kodların yürütülmesine buradan başlanır. Ondan sonra gelen ayraç standarttır. Bir bloğu temsil eder. İki ayraç işareti arasındaki alan main fonksiyonuna ait bir bloğu oluşturur. Programdaki yerinin önemi yoktur. Hangi satırda yazılmış olursa olsun ilk işlenecek bölümdür. Her program main() fonksiyona sahip olmalıdır. main, bir fonksiyon olduğu için () tarafından izlenir ve fonksiyon içerisindeki kodlar { } arasına yazılır.
printf() standart kütüphane bulunan ekrana bilgi yazdırma fonksiyondur. stdio.h bu fonksiyonu kullanmak için programın başına ilave edilmiştir. Çift tırnak işaretleri içerisine yazdığınız herşey printf sayesinde ekrana basılır.
getch() Klavyeden tek bir karakter okur ve girilen değeri ekrana yazmaz. conio.h kütüphanesini kullanır.
Fonksiyon İşlevleri
getchar() Girilen karakteri okuma işlemi için ENTER tuşuna basılması gerekir.
getche() Karakter girilir girilmez okuma işlemi gerçekleşir.
getch() getche() fonksiyonundan tek farkı girilen karakterin ekrana yazılmamasıdır.
putchar() Bir karakteri ekrana yazar.
gets() KLavyeden bir karakter dizisi okur.
puts() Bir karakter dizisini ekrana yazar.
Her komutan sonra noktalı virgül koymalıyız. Çünkü noktalı virgül C dilinde komut ayracı anlamına gelmektedir.
Yukarıda gördüğünüz ilk C Programımız stdio.h kütüphanesinde tanımlı printf fonksiyonu aracılığıyla "Hello World" yazdırmaktadır. Eğer bunu derleyicinizde yazıp derlerseniz ve sonrasında çalıştırırsanız ekrana Hello World yazılacaktır.
C dilinin genel yazım kuralları
- C dili birden fazla satırdan oluşan açıklama satırlarına izin verir.
- Bu açıklama satırları programın ne iş yaptığı hakkında bilgi verir.
- Açıklama satırları /* ile başlayıp */ ile sona erer.
- C de her bir işletilebilir ifade ; ile sonlandırılır.
- Bütün anahtar kelimeler ve komutlar küçük harfle yazılır.
- C dili büyük-küçük harf duyarlıdır.
C Dilinde Kullanılan Anahtar Kelimeler
C dilinde anahtar sözcükler küçük harfle yazılır. Anahtar sözcükler tanıtıcı sözcük olarak kullanılamazlar; kendilerine özgü kullanım alanları vardır. C dilindeki bütün anahtar sözcüklerin sınıflandırılmış bir listesi aşağıda verilmiştir. ANSI standartlarına göre C'de kullanılmakta olan toplam 32 adet anahtar kelime vardır. Bu kelimeler değişken ve fonksiyon adı olarak kullanılamaz.
C Kaynakları, Faydalı Linkler