“ASCII Table” deyilən şey nədir və nəyimə lazımdır?

Mr Nasibovv
Pragmatech
Published in
4 min readJul 26, 2020

Əgər bu məqaləni oxuyursunuzsa deməli siz ya programçısız ya da bu sahəyə yeni baş vurmusuz. ASCII cədvəlini də çox böyük ehtimal ya universitetdə 3–4 cümlə ilə ifadə edib üstündən keçiblər ya da ki siz özünüz məşğul olan zaman rastınıza çıxıb. İlk başlarda, əsasəndə belə mövzuları öyrənən zaman, mövzuya aid mənbəni, bu hər hansı bir məqalə və ya paraqraf ola bilər, oxuyub bitirdikdən sonra “Okay, ama bu mənim nəyimə lazım olacaq?(!)”- kimi düşüncələr çox adamın ağlına gələn ilk şeylərdəndir. Bu səbəbdən də bəzən bu kimi təməl mövzulara tələbələr tərəfindən qeyri-ciddi bir yanaşma (hansiki gələcəkdə daha çətin mövzuların qavranmasında ciddi boşluqların yaranmasının səbəbkarıdır) müşahidə olunur. Onda keçəy əsas məsələyə …

“ASCII Table” nədir?

Kompüterin elektrik enerjisinin keçdiyi dövrələrdən ibarət bir sistem olduğunu çoxumuz bilirik. Bu elektrik axımının da daha başa düşülən olması üçün ikili say sistemindən — 1 və 0-lardan ibarət bir say sistemi istifadə olunur. Bu say sisteminin kompüterdən daha əvvəl var olduğunu bilərək, o zamanki dahilərin bu say sistemini dövrədən elektrik enerjisinin keçib-keçmədiyini daha başa düşülən hala gətirməkdən başqa, bir növ bu cihazı daha da funksional hala gətirməyə çalışdıqları danılmazdır. Rəqəmləri onluq say sistemindən ikili say sisteminə çevirib üstündə istənilən əməlləri etmək mümkün idi ama bəs yazılar? Yazı yazılması üçün o zamanlar daha fərqli cihazlardan istifadə olunurdu, ama əsas hədəf bunu kompüterlərdə etmək idi. Rəqəmləri ikili say sistemində ifadə etmək asand idi ama yazıda istifadə olunan hərflər, durğu işarələri və s. simvol olduqları üçün onları ifadə etmək üçün standartlaşdırmağa ehtiyac duyulurdu. Çünki 1960 larda hər bir şirkətin özünə məxsus cədvəli var idi və məlumat mübadiləsi zamanı bu ciddi problemlerə səbəb olurdu. Məsələn, A şirkətinin cədvəlində “D” hərfi 10-a ekvivalent idisə B şirkətində bu “E” hərfi üçün nəzərdə tutulmuşdu. Problemin necə böyük olduğunu yəqinki siz də anladınız. Yazılan hərbirşey, bir növ sadəcə onun yazıldığı kompüter üçün idi. (Hətta bəzi mənbələrdə qeyd olunurki, bəzi şirkətlərdə şirkət daxilində belə müxtəlif cədvəllərdən istifadə olunurdu).

Bəs bu məsələni necə həll eləmək olardı? - Əlbətdəki standartlaşdırma ilə.

Yəni standart olaraq bir cədvəl tərtib olunacaq idi və bütün şirkətlər bu cədvəldən istifadə etmək məcburiyyətində olacaqdı. Bu yolda isə ilk addımı o zamanlar İBM də işləyən alim Bob Bemer atdı. Bu dəqiqə bu məqaləni ya da indicə telefonunuza gələn mesajı düzgün şəkildə oxuya bilməyinizin ilk səbəbkarlarından biridir özü. Əksərriyətiniz yəqinki görmüsünüz ama yenə də daha diqqətli göz atmağınız üçün məşhur ASCII — American Standart Code for Information, cədvəlini aşağı qoyuram.

Cədvələ ilk dəfədən diqqətlə baxdıqdan sonra diqqətiniz çəkən məqamlardan biri, “Bəs qalanları?” ola bilər. ASCII cədvəlində cəmi 128 simvolun qarşılığını görürük, bu zaman da belə suallar yarana bilər:

Niə tam olaraq 128 simvol? Axı o vaxtki kompüterlər 8 bitlik bir tutuma sahib idi, niyə onda 256 simvol yoxdur? Bəs burda olmayan hərflər, işarələr, emojilər? və s.

Əvvəlcə onu deyim ki, bəli, 1960 larda bütün kompüterlər 8 bitlik bir tutuma və əməliyyat həyata keçirmək qabiliyyətinə malik idi ama ASCII cədvəli 7 bitlik bir sistem üçün yazılmışdı, başqa cürə desək məcburi olaraq 7 bitə sığdırılmışdı. Ona görə də cədvəldə 7 bitə yerləşəcək qədər (2⁷ = 128) simvol görürük. Yuxarıda qeyd etdiyim məcburi sözünü boşu-boşuna istifadə etmədim, çünki 8-ci bit o zamanlar fayl mübadiləsi zamanı yoxlama əməliyyatını həyata keçirmək üçün (parity check) ayrılmışdı və həmin bit “parity bit” adlanırdı. Bu, göndərilən ilə qəbul olunan informasiyanın eyni olub-olmadığını yoxlamaq üçün idi. Lakin bir çox boşluğu olduğu üçün artıq istifadə olunmur. Prosesi və boşluqları daha aydın başa düşmək üçün aşağıdakı şəkilə göz atmaq kifayətdir:

Göndərmədən əvvəl məlumatın “even parity” yoxsa “odd parity” istifadə edecəyi müəyyənləşdirilir və eyni “parity” ilə qəbul olunması tələb olunur.

Note: 1 və 0 -ların sayı cüt olarsa “even parity”, tək olarsa “odd parity” doğru olaraq qəbul olunur.

sasas

Amma daha əvvəl də qeyd etdiyimiz kimi bu cədvəldə olmuyub da müxtəlif dillərdə olan 100-lərlə hərf mövcuddur. Bunun üçün də ASCII cədvəlinin dəyişdirilmiş növləri tərtib olundu. Vaxt keçdikcə 127 simvol azlıq təşkil etdiyi üçün genişlədilmiş formaları, yəni Unicode məntiqi irəli sürüldü. Zaman ilərlədikcə 8, 16 hətta 32 bitlik yazı çevirmə (encoding) sistemləri yaradıldı. Amma bir şeyi yadda saxlamaq lazımdırki 127-dən daha çox simvolu olan cədvəllər ASCII deyildir.

Hamımızın gündəlik istifadə etdiyimiz bu emojinin 10-luq dəyəri 128514, 2-li say sistemindəki dəyəri isə 11111011000000010 -dır.

ASCII cədvəli bizim nələri öyrənməyimizə səbəb oldu?

Yuxarıda özüm verib özüm də cavabladığım hər 3 sual bu dersi ilk dəfə oxuduğum zaman ağlıma gələn və cavablarını tapmaq üçün onlarla məqalə oxumaq məcburriyətində qaldığım suallar idi. Hər yeni məqalə oxuyanda beynimdə olan sualın bir həssəsi tamamlanırdısa, ən az 1 yeni sual da yaranırdı. Bütün proses boyu yaranan sualları, onların cavablarını və ən əsası hər şeyin bir-biri ilə necə zəncirvari bağlı olduğunu burda yazmaq istərdim ama o zaman da çox uzun bi yazı olardı. Uzun sözün qısası oxuduğunuz hər yeni movzuda “mind lamp”-niz yanmadıqca həmin movzunu buraxmayın!

Mənbələr:

--

--