
Kompüter arxitekturasında hər yerdə mövcud olmayan bir ənənə var: saymağa sıfırdan başlamaq. Sıfır əsaslı indeks sistemi adlanan bu anlayış əsasən list və digər data strukturları ilə işləyərkən əksər proqramlaşdırma dillərində görünür. Proqramlaşdırmaya yeni başlayanlara qəribə görünən bir yanaşmadır. Axı biz gündəlik həyatda olaraq birdən saymağa başlayırıq. Nə üçün kompüterlər və proqramçılar sıfırdan saymağa başlayır? Bunun arxasındakı səbəblər daha çox komputerlərin yaddaş dizaynları ilə əlaqəlidi. Gəlin sıfır əsaslı indeks sistmeinin mənşəyini.
Yaddaş ünvan sisteminin dizaynı
Kompüterlərin ilk zamanlarında kompüterin fiziki dizaynı programlaşdırma strukturuna böyük təsir göstərmişdir. Kompüterlər məlumatların saxlanması üçün fiziki yaddaşdan istifadə edir və bu yaddaş hər birinin unikal ünvanı olan xanalar ardıcıllığıdır. Bu ünvanlar sıfırdan başlayır. Məsələn, birinci yaddaş xanasının ünvanı 0, ikincisinin ünvanı 1 və s. List elementləri bitişik yaddaş xanalarında saxlanılırç və hər bit elementin öz ünvanı olur. Hər hansı bir elementin ünvanı belə hesablanır:
elementin_unvani = esas_unvan + (elementin_indeksi * element_olcusu)
Burada esas_unvan listin ilk elementinin ünvanıdır. elementin_indeksi ünvanını tapmaq istədiyimiz elemetin indeksidir. element_olcusu isə listdəki elementlərin standart ölçüsüdür, misallarımızda bu ölçünü 8 olaraq götürəcəyik. Bəs esas_unvan niyə ilk elementin indeksidir? İlk elementin indeksi 0-dır. Gəlin hesablayaq və baxaq:
ilk_elementin_unvani = esas_unvan + (0 * 8)
Gördüyünüz kimi ilk_elementin_unvani esas_unvan-a bərabər olur. Gəlin listin 3-cü elementinin ünvanın tapaq:
3cu_elementin_unvani = esas_unvan + (2 * 8)
Listin 3-cü elementinin ünvanı əsas ünvandan 16 pillə yuxarıdı.
İndeksin sıfırdan başlaması ünvan tapmağı asanlaşdırır. İndeks sistemi birdən başlasaydı bu düstura əlavə düzəliş lazım olacaqdı.
Bir əsaslı indeks sistemi istifadə edən dillər
Sıfır əsaslı indeks sistemi müasir proqramlaşdırma dillərində üstünlük təşkil etsə də istisnalar da var. MATLAB məsələn bir əsaslı indeks sistemindən istifadə edir. Bu seçim çox vaxt bu dilin elmi araşdırmalarda istifadə olunması ilə əlaqələndirilir çünki bir əsaslı indeks sistemi riyazi hesablamalara daha uyğundur.