Programlama Temelleri/Bilgisayarın Çalışma Mantığı

Vikikitap, özgür kütüphane

Bilgisayarın Çalışma Mantığı[değiştir]

Çalışma mantığını kavramak için öncelikle bilgisayarın bir işi nasıl yaptığını ve bilgisayarın parçalarını incelemek gerekir.

Bilgisayar bir işi,komutu 3 aşamada gerçekleştirir.

  1. Bilgi girişi
  2. Bilginin işlenmesi
  3. Bilgi Çıkışı


Bu durumu örneklerle inceleyelim.
Örnek 1: CD içerisindeki bir word dosyasını yazıcıdan yazdırmak için şu işlemler gerçekleşir.

  1. Giriş: CD'deki word dosyası bilgisayar tarafından okunur.
  2. İşlem: Okunan bilgi bilgi işlemci tarafından yazıcının anlayacağı şekle çevrilir.
  3. Çıkış: Son olarak çevrilen bilgi çıktı olarak yazıcıya gönderilir.
Tüm modern bilgisayarlar temelde aynı yapısal özellikleri taşımaktadır.



Örnek 2: Sabit diskteki resim dosyasını Paint ile düzenleyip CD'ye yazdırmak için şu işlemler gerçekleşir.

  1. Giriş: Sabit diskteki resim dosyası bilgisayar tarafından okunur.
  2. İşlem: Okunan resim Paint'e aktarılır ve düzenlenir.
  3. Çıkış: Son olarak düzenlenen resim çıktı olarak CD'ye gönderilir.


Bilgi girişi, bilginin işlenmesi ve bilgi çıkışı sırasında kullanılan bilgisayar parçalarını yaptıkları işe göre 5 gruba ayırabiliriz.

  1. Girdi Üniteleri: Bilgilerin bilgisayara aktarılmasını sağlar. Örneğin: Klavye, fare, tarayıcı, kamera ya da mikrofon.
  2. Merkezi İşlem Birimi: Veriyi işlemeyi sağlar. Bilgisayardaki sadece 1 tane merkezi işlem birimi vardır, o da işlemcidir.
  3. Çıktı Üniteleri: İşlemcinin çıkan sonuçları dışarı aktarabilmesini sağlar. Örneğin: Monitör, yazıcı, sürücüler ya da hoparlör.
  4. Hafıza Birimi: Bilgisayar tarafından işlenecek bilgileri, programları depolamayı sağlar. Örneğin: Ram bellek, sabit disk, CD ya da DVD.
  5. Veriyolu: Bilgisayarda, bir birimden diğerine veri aktarmak için veriyolları kullanılır. Örneğin: Klavyeden basılan bir tuşun bilgisi işlemciye veriyolu vasıtasıyla iletilir.


Bigilerin alınması,işlenmesi ve çıktı olarak istenilen yere gönderilmesi işlemcinin yönetiminde gerçekleşir. İşlemciyi yöneten şey ise programdaki komutlardır.

Peki nedir bu komutlar: Bu komutlar 0 ve 1'lerden oluşmuş sayı dizileridir. Her bir komutun işlemcide yaptığı bir iş vardır. Ve bu 0-1'ler bizim istediğimiz sırada çalıştırıldığında bir işi gerçekleştirir. Bu komutların bütününe ise program, yazılım deriz. Yazılım bilgisayarda bir işi yapan komutlar bütünüdür. Biz bir yazılımı bilgisayardaki simgesine tıklayarak çalıştırdığımızda aslında yaptığımız şey yazılımın içindeki kodları hafızaya yüklemektir. Bu yüklenen kodlar ise sırası geldiğinde çalışarak programı yürütürler ve program ne için tasarlanmışsa o işi yaparlar. Örneğin bilgisayarda müzik dinlemek, oyun oynamak, vs.

Makine Dili[değiştir]

Makine dili, geliştirilen ilk programlama dilidir. Bu dilde yazılan tüm komutlar 0 ve 1 lerden oluşur. Makine dili örneği

Bu program ekrana "Hello world" yazısını yazar.
101110110100010001 0000000110111001 0000110100000000 10110100000001
1000101000000111 0100001111001101 0001000011100010 1111100111001101
0010000001001000 0110010101101100 0110110001101111 0010110000100000
0101011101101111 0111001001101100 0110010000100001

İkili Sayı Sistemi[değiştir]

İkili sayılar, sayıların 2 tabanında yazılmasıyla elde edilir. Dolayısıyla tüm sayılar 0 ve 1 rakamları kullanılarak ifade edilirler. Günümüz bilgisayarlarının neredeyse tamamında kullanılırlar.


Günlük hayatta sayıları ifade etmek için onluk taban [decimal] kullanılır. Bunun anlamı, her sayının 0, 1, 2, 3, 4, 5, 6, 7, 8 ve 9 rakamları kullanılarak ifade edilmesidir. İkili sayılarda ise fark 10 yerine taban olarak 2'nin kullanılmasıdır. Dolayısıyla kullanabileceğimiz rakamlar 0 ve 1'dir.



Bilgisayarda ikili sayı sisteminin kullanılma nedeni: bilgisayarın temelde sadece iki durumu ölçebilmesindendir. Bu durumu Sinyal yok 0, sinyal var 1 şeklinde özetleyebiliriz. Aslında bilgisayarların tüm bildiği, ölçebildiği budur. Fakat saniyede milyarlarca işlemi ardarada yapabilirler ve programla dilleri kullanılarak programlanabilirler.

Derleyici[değiştir]

Bir programlama dili ile yazılmış olan kaynak kodu makine koduna çeviren yazılımdır.


Örneğin, şu satırı bir programın kaynak kodunda (programın okunabilir hali) düşünelim:

Alttaki assembly'de yazılmış satırlar, aynı programın derlenmiş halidir:

LOAD A [0]        ;; belleğin 0 adresindeki veriyi A siciline yükle 
ADD A BX  ;; A siciline BX sicilindeki adreste bulunan veriyi ekle
STOR A [100]  ;; sonucu 100 adresine yaz

Bu örnekte çevirinin hedefi, programcının anladığı kaynak kodundan işlemcinin anladığı 0 ile 1 den oluşan makina dili kodunu üretmek (LOAD,ADD ve STOR komutları 0001, 0011 ve 0010 olarak yorumlanır)

 0001 01 00 00000000
 0011 01 10 00000010
 0010 01 00 00000100
 ---- -- -- ---------
  |   |  |   |_________bellek adresi
  |   |  |____________işaret   
  |   |______________sicil
  |_________________komut


Özetle derleyici yazdığımız kodu makinenin anlayacağı ikili sayı sistemine çevirir.