28.02.2015 Views

Ders 1: Giriş

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

dillerin deyimleri barındıran bir düz metin dosyasında (plain text file) saklanır. Bu dosyalar<br />

geleneksel uzantılarla birbirinde ayrılabilir, örneğin c programları .c uzantılı, Pascal<br />

programları .pas uzantılı dosyalardır.<br />

Derleyici (compiler), bir programlama dilinde yazılmış olan kaynak kodunu başka bir dile<br />

(coğukez makine dili) çeviren yazılımdır. Her programlama dile kendi derleyicisine sahiptir.<br />

Derleyicinin çevirdiği kaynak kod, hedef kod veya nesne kodu (object code) olarak<br />

adlandırılır. Nesne kodu, bilgisayarın mikroişlemcisi (CPU) için gerekli makina kodlarını ve<br />

işletim sistemi için gerekli program uygulama arayüzlerini (API: Application Programming<br />

Interface) içerir. Nesne kodu çalıştırılabilir bir kod değildir, ama bütün programlama dilleri<br />

için aynıdır. Derleyicilerin ürettikleri nesne kodları genellikle .obj veya .o uzantılı dosyalarda<br />

saklanır.<br />

Sonraki adım, nesne kodunun özel bir bağlayıcı (linker) ile işlenmesidir. Bağlayıcı,<br />

derleyiciler tarafından üretilmiş bir veya daha fazla nesne kodunu birleştirip tek bir<br />

çalıştırılabilir dosya oluşturan yazılımdır. Her sistem kendi bağlayıcısına sahiptir.<br />

Bağlayıcının ürettiği çalıştırılabilir kod Windows ortamında .exe uzantılı dosyalarda saklanır.<br />

Linux ortamında çalıştırılabilir dosyaların çoğunlukla bir uzantısı yoktur.<br />

Kaynak kodunun derlenip çalıştırılabilir dosyanın oluşturulmasına ait işlem basamakları Şekil<br />

22.1'de gösterilmiştir.<br />

Şekil 22.1: Derleme-Bağlama-Çalıştırma işleminin akış diyagramı.<br />

C ve C++ dilleri için iki çeşit kaynak kodu vardır: .c veya .cpp uzantılı ana program ve bazı<br />

bildirimlerin bulunduğu .h veya .hpp uzantılı başlık dosyaları (header files).<br />

C (ve C++) dilinde derleme işlemi iki adım adımda yapılır. Birinci adımıda, derleme öncesi<br />

özel bir ön işlemci (preprocessor) programı devreye girer. Ana programdaki veya başlık<br />

dosyalarındaki diyez ('#') işareti ile başlayan satırlar aslında C (veya C++) diline ait olmayıp<br />

ön işlemci dilidir. Ön işlemci, bu satırlardaki deyimlere bakarak, bir katarı (string) alıp başka<br />

bir katarla değiştir. Örneğin:<br />

#include <br />

satırı ile stdio.h dosyasının metin içeriği programa dahil edilir. Ön işlemci deyimlerinin<br />

tamamı Bölüm 20'de anlatılatılmıştır.<br />

Ön işlemci programı, .c ve .h uzantılı düz metin (text) halindeki kaynak dosyasını okur, ve<br />

çıktı olarak başka bir düz metin dosyası üretir. Bu yeni dosya hiçbir ön işlemci deyimi<br />

içermeyen C (veya C++) derleyicisi tarafından işlenmeye hazır bir dosyadır. İkinci adımda bu<br />

dosya ile kaynak kodaları beraber derlenip sırasıyla nesne kodu ve çalıştırılabilir kod üretilir.<br />

Bu işlemlem Şekil 22.2 de özetlenmiştir.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!