هل الحاسب الآلي بالتعقيد الذي نتصوّره؟ هل هو معقّد إلى الدرجة التي يتعّذر معها استيعاب طريقة عمله؟ وكيف “يفهم” ما نريده بالضبط ويعمل على تنفيذه؟ في الحقيقة، إذا تجاوزنا المكوِّن البرمجي بمنطقه وخوارزمياته للتنقيب عن أعمق مستوى يعمل فيه الحاسب..
سنجد أنّ آليّة عمله – ببساطة – تستند على نظام إلكتروني يضم عددًا من الدارات الكهربائيّة التي لا تخرج عن إحدى حالتين، فإمّا أن تسمح بمرور الإشارة الكهربائيّة، ويُرمَز لهذه الحالة بـ (1) أو (on)، وإمّا أن تمنع مرور الإشارة الكهربائيّة، ويُرمَز لهذه الحالة بـ (0) أو (off)..
وعليه، فإنّ جميع ما نشاهده أو نسمعه على شاشات أجهزتنا الإلكترونية من صور ورسومات وأصوات وأحرف وأرقام ورموز، هي عبارة عن سلسلة من حالات مرور وعدم مرور الإشارات الكهربائيّة، أو بعبارة أخرى، عبارة عن توليفة خاصّة وفريدة من الواحدات والأصفار لكل حرف ورقم ورمز وغيرها..
بالرجوع إلى الأسئلة السابقة، فإنّ طريقة عمل الحاسب الآلي ليست عصيّةً على الاستيعاب، خصوصًا وأنّ الحاسب هو أحد مصنوعات الإنسان، وما كان له أن يوجد لولا أنّه مفهوم، أمّا بالنسبة إلى كون الحاسب يفهم ما نريده منه، فقد تبيّن لنا أنّه لا يفهم شيئًا إطلاقًا بالنظر إلى طريقة عمله..
وقد تذكرت قصة طريفة أوردها (John Clark Scott) في كتابٍ له (سيأتي عنوانه لاحقًا)،مفادها أن شخصًا يدعى “جو”، كانت قد أصابته الحيرة بعد أن شاهد رجل مبيعات وهو يعلن عن اختراعٍ جديد ومذهل، هذا الاختراع عبارة عن ترمس مخصص للحفاظ على درجة حرارة الأطعمة بداخله سواء كانت باردة أو ساخنة..
فأخذ “جو” يلوّح بيديه لرجل المبيعات بين الجموع المحتشدة حوله وهو يصرخ قائلًا: “ولكن كيف يفهم؟”، إذ اعتقد “جو” أنّ طريقة عمل الترمس تقتضي قدرته على التمييز بين الطعام الساخن والبارد المحفوظ بداخله، حتى يقرّر ما إذا كان سيحافظ على درجة حرارة مرتفعة أو منخفضة..
في حين أن مبدأ عمل الترمس كان أسهل وأقلّ تعقيدًا ممّا تصوّر “جو”، فالأطعمة سواء كانت ساخنة أو باردة، تتغيّر درجة حرارتها تدريجيًّا لتتناسب مع درجة حرارة البيئة المحيطة، وما يميّز ذلك الترمس هو أنّه يبطّئ تلك العمليّة بصرف النظر عن درجة حرارة الأطعمة الموجودة بداخله..
وقد استلهم (John Clark Scott) عنوان كتابه من قصّة “جو”، فأسماه: (?but how do it know)، وهو كتاب جميل وسلس ومفيد جدًّا للمتخصّصين والمهتمّين بعلوم الحاسب.. أنصح الجميع بقراءته.

ما هو نظام العدّ الثنائي (Binary Number System)؟ قبل أن نتحدث عن هذا النظام، من المهم أن نعرّج على نظام مشابه نستعمله في حياتنا اليومية، حتى تكون الصورة أوضح، ألا وهو نظام العد العشري (Decimal Number System)، فما هو هذا النظام؟ حسنًا، أعرني انتباهك لبعض الوقت..
حين نتأمّل جميع الأرقام التي نتعامل بها في كل شؤون حياتنا ومهما بلغ مقدارها (عدد الخانات)، سنجدها محصورة في المجموعة التالية: {0,1,2,3,4,5,6,7,8,9} هذه المجموعة تحتوي على 10 أرقام (من 0 إلى 9)، وكما نلاحظ، فإن العدد 10 غير موجود بقيمته ضمن المجموعة، لكنّه يتكوّن من عنصرين منها..
وبما أنّ المجموعة تتكوّن من 10 أرقام، وبما أنّ مضاعفات عناصرها تتّخذ من العدد 10 أساسًا لها (مثلًا العدد 478 يتكوّن من 8 و 70 و 400.. أو 8×10^0 و 7×10^1 و 4×10^2)، فإنّ المسمّى المناسب لطريقة استخدامها هو “نظام العدّ العشري”، وقس على ذلك في مختلف أنظمة العد الأخرى..
بما في ذلك نظام العدّ الثنائي، فهو يقوم على عنصرين فقط، وإذا أردنا كتابتها في صورة مجموعة على غرار النظام العشري، فسوف تكون كالتالي: {0,1} ولذلك دعوناه بنظام العد الثنائي، فهو يقوم على عنصرين، ويعتمد الأساس “2” في مضاعفاته، وهذا النظام هو المستخدم في الحاسب الآلي..
ومن خلاله يتم الترميز لكل شيء يتعامل معه من حروف ورموز وأرقام وغيرها.. فمثلًا لو أخذنا العدد الثنائي 101، سنجد أنّه يتكوّن من 1×2^0 و 0×2^1 و 1×2^2، ونواتجها على التوالي هي 1 و 0 و 4، ومجموع هذه النواتج هو 5، فيكون العدد الثنائي 101 هو ترميز للعدد 5 في النظام العشري..
والحديث في هذا الموضوع يطول إن أردنا الإسهاب، وليس هذا مقامه، وقد كتبت البارحة سلسلة تغريدات عن فهمنا للحاسب الآلي وفهمه لنا، وقد تطرّقت فيها إلى مبدأ عمل النظام الثنائي، وهي مرفقة بهذه التغريدة لمن أراد الاطلاع عليها.
في النهاية، إذا كان لديك إي استفسار يثير اهتمامك، أخبرنا في التعليقات بالأسفل، وسنكون جاهزين بالرد عليك في أقرب وقت ممكن، نراكم في موضوع آخر، فلا تنسونا من نشر المقال لتعم الفائدة.
المصدر (1)