آلات الحوسبة
كان العمل الشاق والرتابة المُضنية من التَّكرار المستمر لعملياتٍ حسابية متماثلة، هو ما أثار الرغبة في البداية في وجود آلة لتكون بمثابة بديلٍ لإحدى أبسط العمليات الذهنية التي يُجريها البشر، ومن ثَمَّ طُرحت الفكرة لابتكار مثل هذه الآلة، بمساعدة الجاذبية أو أي قوة مُحركة أخرى.
الآن سنُلقي نظرة على تطور آلات الحوسبة وبُعد التفكير الحوسبي اللازم لتصميمها وفهمها. كان الدافع الفعلي الأساسي لبناء آلات الحوسبة هو دائمًا تسريع عمليات الحساب والتخلُّص من الأخطاء المتأصِّلة في الحواسب البشرية.
لطالما كان الناس مفتونين بفكرة إنشاء أجهزة لأتمتة جوانب من السلوك البشري أو التفكير البشري. على مدى آلاف السنين، أنشأ الحرفيون آلاتٍ ذاتية التشغيل لأغراضٍ فنية وترفيهية، مثل الحيوانات الذاتية الحركة وصناديق الموسيقى والبيانوهات الذاتية التشغيل وتماثيل البشر التي تُحاكي سلوك الناس. وقد أثار «التركي الآلي»، الذي يُطلَق عليه أحيانًا لاعب الشِّطْرَنج الآلي، الجدل في عام ١٧٧٠ إذ بدا أنه يحوِّل لَعِب الشطرنج إلى عملية آلية مُميكنة، في حين أنه كان يُعتبر آنذاك مهارة عقلية رفيعة المستوى. ولكن اتضح لاحقًا أنه خدعة مُعقدة. لكنه أثار فضول المُخترِعين الذين تساءلوا عما إذا كان بإمكانهم حقًّا بناء آلة تلعب الشطرنج. واعتقد بعض الفلاسفة أن الآلات الذاتية التشغيل المُستخدَمة في إجراء العمليات الحسابية، وهي أيضًا مهارة عقلية عُليا لدى البشر، قد تكون أكثر جدوى؛ لأن قواعد الحساب الأساسية كانت أوضح وأبسط بكثيرٍ من قواعد الشطرنج واستراتيجياته.
(١) بزوغ نجم آلات الحوسبة
عندما يتمكن الخبراء من تشفير ما يعرفونه عن الحساب والمنطق في شكل خطوات إجرائية، تُصبح معرفتهم مفيدة للعديد من غير الخبراء، الذين يمكنهم الحصول على النتائج دون خطأ عن طريق اتباع التوجيهات ببساطة. ولكن بغضِّ النظر عن مدى دقة الإجراء، فإن المُشغِّلين البشر عرضة للخطأ. فهم ينسَون، ولا يفهمون كل العمليات الحسابية فهمًا تامًّا، ويسهل تشتيتُهم، ويشعرون بالملل بسرعة عند إجراء عملية حسابية روتينية طويلة. وبغضِّ النظر عن مدى بساطة الخطوات ووضوحها، يرتكب الحواسب من البشر أخطاء. بل يرتكبون الكثير من الأخطاء. فقد وجدت إحدى الدراسات التي أجريت على ٤٠ مجلدًا من الجداول الرياضية القديمة ٣٧٠٠ خطأ، ووجدت دراسة أخرى ٤٠ خطأ في صفحة واحدة.
لهذا السبب، سعى المُخترعون عبر العصور إلى آلات حوسبة وأدوات حسابية مساعدة تتيح للبشر إجراء عمليات حسابية أطول بأخطاء أقل. وقد حدثت هذه العملية ببطء. اخترعت المسطرة المنزلقة حوالي عام ١٦٢٠. وعن طريق تحريك العِصي المميزة بمقاييس لوغاريتمية بعضها فوق بعض، كانت تنفذ أسلوب الضرب القائم على جمع اللوغاريتمات. ولكن المسطرة المُنزلقة لم تكن تستطيع الجمع أو الطرح. وفي عام ١٦٤٢ صمم بليز باسكال آلة حاسبة يُمكنها الجمع والطرح، ولكن لا يمكنها الضرب أو القسمة. وفشلت محاولات الآخرين لتوسيع إمكانات الآلة الحاسبة التي صمَّمها باسكال بحيث تسمح بعملية الضرب.
وجدت المسطرة المنزلقة مكانها بين المهندسين، بينما استخدم الآلة الحاسبة الرياضية علماء الرياضيات والمحاسبون. وعلى مدار القرون التالية أُدخلت تحسينات تدريجيًّا على هذه الآلات. فبحلول الثلاثينيات من القرن العشرين، كانت شركة «كوفل آند إسر» هي المورد الرئيسي للمساطر المنزلقة اللوغاريتمية المُثلثية، وكانت شركة «مرشانت» هي المورد الرئيسي للآلات الحاسبة الميكانيكية التي تقوم بجميع العمليات الحسابية الأربع. اجتاح طوفان التغيير الذي أطلقته ثورة الكمبيوتر الإلكتروني في خمسينيات القرن العشرين العديد من شركات المساطر المنزلقة والآلات الحاسبة الميكانيكية. وبدأت شركات جديدة مثل «هوليت – باكارد» و«تكساس إنسترومنتس» في إنتاج آلات حاسبة مكتبية إلكترونية بالكامل يمكنها أداء جميع وظائف المسطرة المنزلقة والعمليات الحسابية. وجاءت الضربة القاضية في عام ١٩٧٢ عندما ظهرت الآلة الحاسبة المحمولة القابلة للبرمجة «إتش بي-٣٥»، والتي حلَّت محلَّ المسطرة المنزلقة لدى المهندسين.
رغم شعبيتهما، كان للمسطرة المُنزلقة والآلة الحاسبة عيبان خطيران. أولهما: أنهما لم يتمكَّنا من إجراء سلاسل طويلة من العمليات الحسابية؛ ولذا كان على المُشغلين البشريين القيام بذلك. وثانيهما: أنه يمكن استخدام هاتَين الأداتَين لغرَض واحد فقط. تغلب الكمبيوتر الرقمي الإلكتروني على هذَين العيبَين بفكرة جذرية: البرنامج المُخزَّن داخليًّا في ذاكرة الآلة. يمكن للبرنامج إجراء عملياتٍ حسابية طويلة ويمكن تعديله بسهولة لتغيير استعمال الآلة الأساسية.
تعود أصول فكرة البرامج إلى ما قبل عصر الحوسبة الإلكترونية. ففي أوائل القرن الثامن عشر، جرَّب النساجون الفرنسيون آلاتٍ يمكنها نسج أنماط مُعقدة باستخدام النول الآلي. كانت إحدى أكثر هذه الآلات شهرة هي نول جاكارد، والذي كان التحكُّم فيه من خلال سلاسل طويلة من البطاقات المُثقبة؛ إذ تدخل إبرة خطافية في الثقب الموجود في البطاقة، فيُرفَع خيط يُصبح جزءًا من خطٍّ واحد من النسيج. أحدث نول جاكارد الآلي ثورة في صناعة النسيج. وكانت بطاقات جاكارد شكلًا من أشكال البرامج الخارجية القابلة للتغيير التي تتحكَّم في تشغيل النول.
أعجبت فكرة التحكُّم في الآلات بالبطاقات المُثقبة هيرمان هوليريث، الذي صمم آلةً لجدولة البيانات المُستخلصة من تعداد سكان الولايات المتحدة لعام ١٨٩٠. وسجَّل بيانات كل مواطن على هيئة نمط من الثقوب المُثقبة في بطاقة، حيث يُمثل هذا النمط خصائص مثل الجنس والعنوان والأصل العرقي. وكانت آلة الجدولة تختار البطاقات التي تنطبق عليها خصائص مُعينة وتحصر الإحصاءات للمجموعة المختارة من المواطنين. وبالاستعانة بآلة هوليريث، أكمل مكتب الإحصاء تحليله ﻟ ٦٣ مليون سجلٍّ في عامٍ واحد، وكان هذا أسرع وأرخص من أي تعدادٍ سكاني تم في السنوات السابقة. وفي السنوات التالية، استُخدِمَت التقنية نفسها لمهام معالجة العديد من البيانات؛ مثل تتبُّع الحالة الصحية لعشرات الآلاف من الجنود، والإحصاءات الزراعية، وقوائم الشحن بالسكك الحديدية، وما إلى ذلك.
قبل التطرُّق إلى ما بعد آلات الجدولة، نودُّ أن نعود ٥٠ عامًا إلى الوراء لنُلقِيَ نظرةً على الإنجاز المُهم الذي حققه تشارلز بابيدج وآدا لافليس: الكمبيوتر المُتعدِّد الأغراض.
(٢) آلات بابيدج
صمم تشارلز بابيدج آلتين حاسبتَين مهمتَين خلال حياته المهنية الطويلة. أُولاهما: «محرك الفَرق» (حوالَي عام ١٨٢٠) ووظيفته أتمتة حساب الجداول الرياضية مثل جداول اللوغاريتمات أو جيب الزاوية. والثانية: «المحرك التحليلي» (حوالي عام ١٨٤٠)، وهو عبارة عن كمبيوتر مُتعدد الأغراض يُمكنه تنفيذ أي دالَّة حسابية.
في زمن بابيدج أعد الخبراء كتبًا تحتوي على جداول للدوالِّ المُهمة مثل لوغاريتمات جميع الأرقام المكوَّنة من ستة أرقام. وشاع استخدام هذه الجداول للعمليات الحسابية الرياضية؛ على سبيل المثال: يمكن للمرء ضرب عددَين عن طريق البحث وجمع لوغاريتماتهما. تم حساب هذه الجداول يدويًّا باستخدام صيغ الفرق التي تحسُب كل سطرٍ من الجدول من السطر السابق له. وعرف بابيدج أن هذه الكتب المحسوبة يدويًّا تحتوي على العديد من الأخطاء، وأن هذه الأخطاء أدَّت أحيانًا إلى عواقب وخيمة. على سبيل المثال: أوضح بابيدج أن الأخطاء في جداول الملاحة التي تستخدمها البحرية البريطانية تسبَّبت في حوادث غرق السفن. وأراد القضاء على الأخطاء بإحلال آلاتٍ محلَّ البشر الذين يتعبون ويشعرون بالملل ويتشتَّت انتباههم. فابتكر آلةً أطلَق عليها اسم «محرك الفَرق» لحساب جداول الأعداد وطباعتها. وأُعجِبَت الحكومة البريطانية بهذه الآلة ومنحته المال لتطويرها.
قضى بابيدج معظم العشرين عامًا التالية في محاولة بناء آلته. وكان هذا تحدِّيًا أكبر بكثيرٍ مما كان يتصور؛ إذ لم تكن أساليب الهندسة الميكانيكية في ذلك الوقت قادرة على إنتاج آلاف التروس والرافعات بالدقة المطلوبة لتجنُّب التخطِّي أو التعطُّل. وفي ثلاثينيات القرن التاسع عشر ابتكر تصميمًا جديدًا يُسمَّى «المحرك التحليلي»، والذي سيحتاج إلى قِطَع غيار أقلَّ ويكون أكثر قوة؛ إذ سيكون قادرًا على حساب أي دالَّةٍ رياضية. ولكن بحلول ذلك الوقت، كانت الحكومة قد فقدت الثقة فيه بسبب فشله في تسليم «مُحرك الفَرق» ورفضت دعم مشروع «المحرك التحليلي». وتابَع ذلك المشروع بتمويلٍ محدود حتى وفاته عام ١٨٧١، ولكنه لم يُكمله أبدًا. وظلَّت أفكاره الرائدة في حالة سكونٍ على مدى اﻟ ٨٠ عامًا التالية.
كان «المحرك التحليلي» يأخذ تعليماته من البطاقات المثقبة، وهي فكرة مُستوحاة من نول جاكارد. واحتوت البطاقات المُثقبة على برنامج يوجِّه الآلة لحساب دالَّة رياضية تلقائيًّا. وكانت الآلة قادرة على تحديد ما يجب فعله بناءً على النتائج السابقة (الاختيار) وتكرار أجزاء من البرنامج (التَّكرار). وكانت تحتوي على وحداتٍ مُنفصلة لدوالَّ منفصلة تخصُّ الآلة، وهي: الإدخال والمعالجة والذاكرة والإخراج. وتتشكل تعليمات الآلة من البرامج المصغرة.
تعاون بابيدج مع عالمة الرياضيات الإنجليزية الموهوبة آدا لافليس، التي صممت خوارزميات للمحرك التحليلي. كان أحد برامجها يحسُب سلسلةً من الأعداد الكسرية تُسمَّى أعداد برنولي. وغالبًا ما يُنظر إلى بابيدج ولافليس على أنهما أول المبرمِجين. والأكثر من ذلك، رأت لافليس آلة بابيدج أكثر من مجرد آلة لحساب الأعداد؛ إذ كانت بالنسبة إليها معالجًا لأي معلوماتٍ يمكن تشفيرها في صورة رموز. وأطلقت على دراسة هذه البرامج اسم «علم العمليات». رأت أن آلات الحوسبة يمكن أن تحسُب ليس فقط الأرقام، ولكن أيضًا الرموز التي يمكن أن تُمثل أي شيءٍ في العالم، متوقِّعةً بسابقِ مائة عامٍ مبدأً أساسيًّا من مبادئ عصر الكمبيوتر الحديث. رأت لافليس الكمبيوتر كآلة معلومات.
كانت رؤية كلٍّ من بابيدج ولافليس مبتكرة. قدمت تصميماتهما العديد من الأفكار التي تُعَد اليوم مِيزات تُميز التفكير الحوسبي عن أنواع التفكير الأخرى. بالإضافة إلى تمثيل البرامج في وسيط خارجي قابل للتغيير، جسَّد المحرك التحليلي العديدَ من جوانب أجهزة الكمبيوتر الحديثة: التمثيل الرقمي للبيانات، والبرمجة، والخوارزميات القابلة للتنفيذ الآلي، وهياكل التحكم لاختيار الحالات ونظم التَّكرار، ووحدة الحساب والمنطق، والبرمجة الدقيقة لتحليل تعليمات الآلة إلى عمليات بوابة منطقية منخفضة المستوى. ومن المفارقات أن بعض الأفكار الجوهرية لعصر الكمبيوتر قد وُلِدت في عصر البخار.
(٣) الكمبيوتر ذو البرنامج المخزن
لم يكن من المُمكن تنفيذ التصميمات المنطقية لجهاز الكمبيوتر الذي ابتكره بابيدج بالاستعانة بتكنولوجيا ذلك العصر، ولكن بعد عدة عقود، فتح عصر الإلكترونيات الناشئ إمكانيات جديدة. كانت الفترة من أواخر الثلاثينيات من القرن العشرين فترة تجريب مُكثف لبناء الآلات الحاسوبية. فقد بنى كونراد تسوزه جهاز كمبيوتر في ألمانيا عام ١٩٣٨، لكن الحكومة الألمانية لم تأخذه على محمل الجِد ولم يكن له تأثير يُذكَر. وتعاونَ هوارد آيكين مع شركة «آي بي إم» برعاية البحرية الأمريكية، وبَنى «مارك الأول» في هارفارد عام ١٩٤٤. وكان كمبيوترَ إلكتروميكانيكيًّا يتجاوز العالَم الميكانيكي الذي تحكُمه قوانين نيوتن للحركة والعالَم الفائق السرعة الذي تحكُمه قوانين ماكسويل للكهرومغناطيسية. وكانت برامجه وبيانات الإدخال الخاصة به تخزَّن خارجيًّا على أشرطة ورقية مثقبة.
في كلية مور للهندسة الكهربائية بجامعة بِنسلفانيا، صمَّم جون موتشلي وبريسبر إكرت — بدعم من الجيش الأمريكي — جهاز كمبيوتر ربما يُعَد أشهر أجهزة الكمبيوتر الإلكترونية الأولى. بدأ تشغيل المكامل الرقمي الإلكتروني (إنياك) الخاص بهما في عام ١٩٤٥ واستُخدِم لحساب جداول إطلاق المدفعية واستكشاف جدوى السلاح النووي الحراري. وحصل المكامل الرقمي الإلكتروني على برنامجه من لوحة توصيلٍ بأسلاكٍ خارجية، كانت برمجتها مُملة. وكان المكامل خير دليل على جدوى مفهوم الحساب الإلكتروني بالكامل؛ فقد نجح وكان سريعًا ومهَّد لظهور آلاتٍ أفضل بعد ذلك بفترة قصيرة. أسس مهندسوه شركة «يونيفاك»، وهي أول شركة تجارية تُقدم جهاز كمبيوتر إلكترونيًّا.
في عام ١٩٤٥ اجتمع فريق إنياك، وانضم إليهم جون فون نيومان، لتصميم آلة أفضل بالاستعانة بخبرتهم. بصرف النظر عن صعوبة برمجة إنياك، كانت ذاكرته محدودة، واستخدم الآلاف من أنابيب التفريغ (١٨٠٠٠ أنبوب) التي تآكلت تدريجيًّا. قسَّم الفريق الآلة — في تصميمها الجديد — إلى ثلاثة نُظم فرعية رئيسية: وحدة المعالجة المركزية لأداء العمليات الحسابية والمنطقية، والذاكرة للتخزين، ووحدة الإدخال والإخراج للتواصل مع العالم الخارجي. ولزيادة سرعة الكمبيوتر، صمَّموا وحدة معالجة مركزية تأخذ تعليماتها من الذاكرة، وليس من البطاقات أو الأشرطة المُثقبة الخارجية، ومن ثَم بدأت فكرة «الكمبيوتر ذو البرنامج المخزن». والغريب أن هذه الطريقة في تنظيم الآلة أصبحت تُعرَف الآن باسم «بنية فون نيومان»؛ حيث دوَّن فون نيومان الملاحظات في اجتماعاتهم ووزَّعها. وزعم أنه مُدوِّن الملاحظات وليس المُصمِّم. ظهرت بِنية فون نيومان في جميع أجهزة الكمبيوتر التجارية تقريبًا من ذلك الوقت وحتى الوقت الحاضر. وأصبحت فكرة أن وحدة المعالجة المركزية تتتبع تسلسُل تعليماتٍ بين التعليمات المُخزنة في الذاكرة مبدأً رئيسيًّا من مبادئ التفكير الحوسبي.
(٤) التفكير الحوسبي والآلات
دعنا نتناول الآن المبادئ المُختلفة للتفكير الحوسبي التي قدَّمتها لنا هذه الآلات المُبكرة ونُظم تشغيلها.
التمثيلات الرقمية باستخدام الإشارات والرموز الثنائية
لكي تُصبح البيانات قابلةً للمعالجة، يجب تمثيلها كإشارات في الآلة أو كاهتزازاتٍ قابلة للقياس في بِنية وسائط التخزين. لا تُوجَد معلومات دون تمثيل. إذ يجب تمثيل العمليات الحسابية مثل الجمع والطرح كقواعد لنقل الإشارات. وكانت إحدى الطرُق المُبكرة لتمثيل رقم عشري عبارة عن حلقةٍ من ١٠ أنابيب مفرغة ثنائية القطب تُحاكي عجلة ذات ١٠ مواضع. كان هذا المُخطط أكثر تكلفةً بكثير من التمثيل الثنائي المكوَّن من ٤ أنابيب لنفس الرقم. رُفِضَت المقترحات لتمثيل الأرقام العشرية ﺑ ١٠ فولتات مُنفصلة بسبب تعقيد الدوائر. وسرعان ما استقرَّ المهندسون على استخدام الرموز الثنائية لتمثيل الأعداد؛ لأن العمليات الحسابية ذات الرموز الثنائية تستخدِم مكوناتٍ أقل بكثيرٍ من العمليات الحسابية ذات الرموز العشرية، ولأن الدوائر التي تُميز بين قيمتَين فولتيتَين كانت أكثر موثوقيةً بكثير من الدوائر التي تُميز بين أكثر من قيمتَين. علاوة على ذلك، يمكن بسهولة إنشاء وحدة التخزين من التكنولوجيا المتاحة ذات الحالة الثنائية مثل خطوط التأخير الصوتي أو النوى المغناطيسية أو الدوائر الإلكترونية القلَّابة ذات الوضعيتَين أو بُقَع الفوسفور على شاشة أنبوب أشعة الكاثود. وقد أدَّى القرار بالتخلي عن العمليات الحسابية العشرية واستخدام التشفير الثنائي في كلِّ شيءٍ في الكمبيوتر إلى دوائر ووسائط تخزين بسيطة للغاية وأكثر موثوقية بكثير. وأصبح مُصطلح «بت» مُستخدمًا بشكلٍ قياسي كاختصارٍ لمصطلح «رقم ثنائي». واليوم لا يمكن لأحدٍ التفكير في أجهزة الكمبيوتر المعاصرة دون التفكير في التمثيلات الثنائية.
من المهم أن نضع في اعتبارنا أن الكمبيوتر لا يُعالج الأعداد والرموز داخليًّا. ودوائر الكمبيوتر لا تتعامل إلا مع الفولتية والتيارات والمفاتيح والمواد القابلة للتشكيل. وأنماط الأصفار والآحاد هي تجريدات اخترعها المُصمِّمون لوصف ما تفعله دوائر الكمبيوتر. ونظرًا إلى أن الرموز الثنائية ليست كلها وصفًا صحيحًا للدائرة أو الرمز أو العدد، فقد اخترع المُصمِّمون قواعد تركيب تُفرق بين الرموز الصالحة وغير الصالحة. وعلى الرغم من أن الآلة لا تستطيع فهم معنى الأنماط، فإنها يمكن أن تُميز بين الأنماط المسموح بها والأنماط الأخرى عن طريق تطبيق قواعد التركيب اللغوي.
لن نكون مُبالغين إذا شدَّدنا على أهمية المكونات المادية في أجهزة الكمبيوتر — مثل الإشارات في الدوائر الإلكترونية أو الرُّقَع المُمغنطة على أقراص التخزين — لأنه من دون هذه المكوِّنات المادية لا يُمكننا بناء كمبيوتر. وعلى الرغم من أن برامج الكمبيوتر تبدو وكأنها أفكار مجردة، فإنها لا يمكن أن تعمل من دون الآلات التي تُسخِّر الظواهر الفيزيائية لتمثيل الأعداد الثنائية. لهذا السبب، من الآمن القول إن كل مجموعة بيانات وكل برنامجٍ وكل تصميم لدائرة منطقية هو «ترتيب استراتيجي لمكوناتها».
الجبر البولياني وتصميم الدوائر
بسبب رؤية كلود شانون بأن منطق جورج بول يصف بدقةٍ دوائر التبديل الإلكترونية، لا يُمكننا اليوم التفكير في أجهزة الكمبيوتر دون التفكير في الجبر البولياني. يساعدنا الجبر البولياني في فَهم كيفية تنفيذ المكوِّنات المادية لتعليمات الآلة التي يُصدرها برنامج التحويل البرمجي. لكن الجبر البولياني هو شكل من أشكال التجريد. وفي بعض الأحيان يُخفي حالات التعارُض المادية الناجمة عن الإشارات المُتعدِّدة التي تتبع مساراتٍ مختلفة إلى نفس المَخرج؛ ويمكن أن تتسبب حالات التعارُض في أخطاء عن طريق جعل الدوائر تنحرف عن صيغها البوليانية. وهذا يُربك المبرمجين الذين هم على درايةٍ فقط بالتجريدات وليس الدوائر الإلكترونية، ولهذا السبب لا يُمكن العثور على الأخطاء عن طريق دراسة برامجهم.
دورة وحدة المعالجة المركزية المَقيسة الوقت لخطوات الحوسبة الأساسية
تتكوَّن البِنية المادية لأجهزة الكمبيوتر من السجلَّات التي تُخزن أنماط البت، ودوائر المنطق التي تحسب دوال البيانات في السجلَّات. يستغرق الأمر وقتًا من دوائر المنطق لنقل الإشارات من سجلَّات الإدخال الخاصة بها إلى سجلات الإخراج الخاصة بها. وفي حال توفير مُدخلات جديدة قبل استقرار الدوائر، من المُحتمل أن تُفسَّر المخرجات بشكلٍ خاطئ من قبل الدوائر اللاحقة. وقد حلَّ المهندسون هذه المشكلة بإضافة ساعاتٍ إلى أجهزة الكمبيوتر. ومع كل دَقة ساعة تخزَّن مُخرجات دائرة منطقية في سجلَّاتها. وتكون الفترة الفاصلة بين الدقات طويلةً بما يكفي لضمان استقرار الدائرة تمامًا قبل تخزين مخرجاتها. ولا يمكن لأجهزة الكمبيوتر ذات بِنية فون نيومان أن تعمل دون ساعة. وتُصنَّف أجهزة الكمبيوتر اليوم وَفقًا لسرعات الساعات الخاصة بها؛ على سبيل المثال: فإن «معالج ٣٫٨ جيجاهرتز» هو المعالج الذي يصل عدد دقات ساعته إلى ٣٫٨ مليار مرة في الثانية.
يمنح وجود الساعات ترجمة مادية دقيقة ﻟ «الخطوات الخوارزمية» في المجال الرقمي. ويجب إكمال كل خطوة خوارزمية قبل الإقدام على الخطوة التالية. ويدعم الجهاز هذا عن طريق ضمان الانتهاء من كل تعليمةٍ بشكلٍ صحيح قبل إجراء التعليمة التالية وهكذا. (هناك أنواع قليلة من أجهزة الكمبيوتر التي لا تستخدِم الساعات، ولكن لن نُناقشها هنا.) وتُعَد الساعات ضروريةً لدعم مفهومنا لخطوات الحوسبة وضمان أداء الكمبيوتر لها بشكل موثوق.
تدفق التحكُّم
الجُمل التَّكرارية: برامج صغيرة لإجراء عمليات حوسبة كبيرة
أثبت آلان تورينج أنه لا تُوجَد خوارزمية لفحص برنامج بهدف تحديد ما إذا كانت أيٌّ من جُمَله التَّكرارية لا نهائية. وهذا يجعل عملية اكتشاف الأخطاء وإصلاحها مشكلةً صعبةً لا يمكن أتمتَتُها. ويقضي المبرمجون قدرًا كبيرًا من الوقت في البحث عن الأخطاء في برامجهم.
تُصمَّم بعض البرامج لتستمر في التَّكرار إلى الأبد. وهذا شائعٌ جدًّا في عمليات تقديم الخدمات على الإنترنت. تظل عملية تقديم الخدمة في موضعها الأصلي في انتظار أي طلبٍ وارد، ثم تنفِّذ التعليمات البرمجية لتلبية الطلب وتعود إلى موضعها الأصلي مرة أخرى. ومع أن هذا يُسهِّل تصميم عمليات تقديم الخدمات، فإنه لا يُزيل التحدي المُتمثل في إثبات أن عملية تقديم الخدمة تعود دائمًا إلى موضعها الأصلي.
تمييز العنوان والمحتوى
البرامج الفرعية
أصبحت فكرة البرامج الفرعية مبدأً أساسيًّا في التفكير الحوسبي. وقد قدَّم لنا مُصممو الأجهزة تطبيقاتٍ فعالة لها. تظهر البرامج الفرعية في لُغات البرمجة على شكل «روتينات فرعية»، و«دوال»، و«إجراءات». ومن المُسلَّم به اليوم أن تكون البرامج مقسَّمة إلى وحداتٍ تُنفذ كبرامج فرعية.
الآلات ذات الأغراض العامة
في عام ١٩٣٦، قدَّم آلان تورينج فكرة الآلة ذات الأغراض العامة؛ وهي عبارة عن كمبيوتر يُمكنه محاكاة أي كمبيوتر آخر، شريطة أن يكون لدَيه البرنامج الخاص بالكمبيوتر الآخر. ولم تكن الآلة ذات الأغراض العامة مُعقدة في حدِّ ذاتها. كانت هذه الفكرة مُضمَّنة في تصاميم الآلات التي تعود إلى المُحرك التحليلي لبابيدج، حيث يصنع المُصممون آلة واحدة أساسية يُمكنها تشغيل العديد من البرامج. وهذه الآلة الأساسية مثالٌ على الآلة ذات الأغراض العامة. واليوم يُعَد هذا من المُسلَّمات؛ إذ يفترض مصممو البرامج أن برامج التحويل البرمجي ونظم التشغيل ستجعل برامجهم تعمل على أي آلةٍ أساسية عامة الأغراض.
يخلط الناس أحيانًا بين فكرة الآلة ذات الأغراض العامة والكمبيوتر ذي البرنامج المُخزَّن. وفي الحقيقة هما ليسا مُتماثلَين. كان المحرك التحليلي لبابيدج آلة ذات أغراض عامة، وكانت برامجها عبارة عن مجموعاتٍ خارجية من البطاقات المُثقبة. وكان المكامل الرقمي الإلكتروني آلة ذات أغراض عامة، وكانت برامجها عبارة عن لوحات توصيل خارجية. بعد عام ١٩٤٥، أصبحت أجهزة الكمبيوتر آلاتٍ ذات أغراض عامة تُخزن برامجها في الذاكرة الداخلية.
يُتيح الكمبيوتر ذو البرنامج المُخزَّن إمكانية تبديل تفسير مجموعة من وحدات البت في الذاكرة ما بين بيانات وتعليمات. فمِن المُمكن أن تكون الأنماط نفسها في ذاكرة الكمبيوتر وحدات بت تُمثل أشياء (بيانات)، وكذلك وحدات بت تقوم بأشياء (تعليمات). ينشئ برنامج التحويل البرمجي، على سبيل المثال، التعليمات البرمجية للآلة على هيئة بيانات مخْرَجة؛ ويمكن لوحدة المعالجة المركزية تفسير هذه البيانات على الفور كتعليماتٍ قابلة للتنفيذ. وقد سمحت بعض الآلات المبكرة للبرامج بتعديل تعليماتها البرمجية لتحقيق مزيدٍ من الفاعلية. ولكن معظم نظم التشغيل قد حالت دون ذلك من خلال تعيين التعليمات البرمجية للقراءة فقط؛ وهذا يسمح بمشاركة التعليمات البرمجية ولكن لا يسمح بتغييرها. إن الفكرة القديمة للبرامج الذاتية التعديل ما زالت موجودة حتى الآن؛ حيث تعدِّل البرامج الضارة اليوم تعليماتها البرمجية باستمرار لتجنُّب اكتشافها بواسطة برامج مكافحة الفيروسات.
تحمل الأخطاء وحماية البيانات
كثيرًا ما تتعرض الدوائر المنطقية للأخطاء الناجمة عن أسبابٍ مادية مختلفة. على سبيل المثال: قد لا يمكن التنبؤ بحالة المُكوِّن إذا وصلت إشارات مُتعارِضة في الوقت نفسه، أو إذا كانت الساعة سريعة جدًّا بحيث لا تسمح لبعض المكوِّنات بالاستقرار في حالاتٍ جديدة، أو إذا كانت المكونات تتدهور وتتعطل بمرور الوقت. ويقضي مهندسو الدوائر الكثير من الوقت في إعداد تحمُّل الأخطاء. وقد أحسنوا عملهم بشكلٍ عام؛ لأن الأجهزة موثوقٌ بها بما فيه الكفاية بحيث لا يقلق المُستخدِمون من حدوث أخطاء في الأجهزة.
في الخمسينيات من القرن العشرين، بدأ مهندسو التصميم في التفكير في أجهزة الكمبيوتر المُتعددة الوصول التي سيتم مشاركتها داخل مجتمع المُستخدِمين. وبالمثل، توسع التفكير الحوسبي من عمليات الحوسبة للمُستخدِم الواحد إلى عمليات الحوسبة المُتعددة المُستخدِمين. وكان على النظم المُتعددة المُستخدمين ضمان عدم قدرة أي مُستخدمٍ على الوصول إلى بيانات الآخر دون إذن صريح. ويُتيح هذا الإعداد فائدة كبيرة تتمثَّل في السماح للمُستخدمين بمشاركة البرامج والبيانات، وخفض التكلِفة للمُستخدِم الواحد عن طريق توزيعها على العديد من المُستخدِمين. وقد حقق مصمِّمُو نظم التشغيل الأولى ذلك عن طريق عزل كلِّ برنامج قيد التنفيذ في منطقة خاصة من الذاكرة مُحدَّدة بعنوان أساسي وطول مُعين. وكانت أعداد الأساس والطول توضَع في سجلٍّ في وحدة المعالجة المركزية بحيث تقتصِر جميع عمليات الوصول إلى الذاكرة من وحدة المعالجة المركزية على المنطقة المُحدَّدة من الذاكرة. وهذه الفكرة الخاصة بتقسيم الذاكرة وإعداد الأجهزة، بحيث يستحيل على وحدة المعالجة المركزية الوصول إلى خارج ذاكرتها الخاصة، كانت بالغة الأهمية لحماية البيانات. ولم يؤدِّ ذلك فقط إلى حماية برامج المُستخدِم بعضها من بعض، بل أيضًا حماية المُستخدِمين من البرامج غير الموثوق بها، والتي يمكن حصرها في منطقة الذاكرة الخاصة بها.
يُدرك مستخدمو الأجهزة والشبكات اليوم أنهم يُشاركون أجهزتهم وشبكاتهم مع العديد من الأشخاص. ويفترضون أن نظم التشغيل والشبكات تفرِض مبدأ العزل من خلال الاحتفاظ بالبرامج قيدَ التنفيذ في مناطق ذاكرة خاصة. وعندما يقومون بتنزيل برنامج جديدٍ لا يثقون به، فإنهم يتوقَّعون أن يعزل نظام التشغيل البرنامج الجديد في منطقة ذاكرة يُطلَق عليها «بيئة الاختبار المعزولة».
على الرغم من أن عزل البرامج بواسطة نظم التشغيل موجود في تفكيرنا الحوسبي منذ فترةٍ طويلة، فإن العديد من شرائح الكمبيوتر المُصمَّمة في ثمانينيات القرن العشرين قد أسقطت من حساباتها التحقُّق من حدود الذاكرة في سبيل زيادة السرعة. ويأسف العديد من خبراء الأمان الآن على هذا. وقد تُطبق الأجيال الجديدة من الأجهزة مرةً أخرى عمليات التحقق من الأمان التي يتوقَّع المستخدِمون أن تكون موجودة في أجهزتهم بسبب خبرتهم في التفكير الحوسبي.
(٥) ما بعد بِنية فون نيومان
من أكثر تعريفات التفكير الحوسبي الجديدة شيوعًا أنه يعني «صياغة المشكلات بحيث يمكن التعبير عن حلولها على شكل خطوات حوسبيَّة تنفذها آلة». ويرتبط هذا التعريف ارتباطًا وثيقًا بإطار عمل بِنية فون نيومان. في الواقع، يُعَد التعريف تعميمًا لآلية عمل وحدة المُعالجة المركزية في آلة فون نيومان.
بعد نصف قرن، أوشكت بِنية فون نيومان على نهايتها. وهناك سببان رئيسيان لذلك. أحدُهما هو أن تقنية الشرائح التي تقوم عليها بِنية فون نيومان، والتي تضاعف عدد مكوناتها كل عامَين وفقًا لقانون مور، لم يعُد بإمكانها استيعاب التقليص المُستمر في حجم المكوِّنات. ستُصبح المكونات قريبًا صغيرة جدًّا بحيث لا يمكن أن تتضمَّن عددًا كافيًا من الذرات يسمح لها بالعمل بكفاءة. وقد حفزت النهاية الوشيكة لقانون مور إجراء أبحاث مكثفة حول بِنًى بديلة.
السبب الآخر هو أن الفصل بين المعالج والذاكرة في بِنية فون نيومان يخلق حركة بياناتٍ ضخمة بين المعالج والذاكرة. ومن التقنيات التي ابتُكرت لتقليل هذا الاختناق الذاكرة المؤقتة، التي تحتفظ بالبيانات في وحدة المعالجة المركزية بدلًا من إعادتها إلى الذاكرة. وثمة تقنيةٌ أخرى تدمُج المعالج والذاكرة في مصفوفةٍ خلوية لتوزيع حمل البيانات على العديد من القنوات الأصغر بين المعالج والذاكرة. وتقنية ثالثة هي الشرائح ذات الأغراض الخاصة؛ وهي عبارة عن شرائح تؤدي عملًا محددًا بكفاءة منقطعة النظير ولكنها في حدِّ ذاتها ليست أجهزة كمبيوتر ذات أغراضٍ عامة. ومن أمثلتها وحدات معالجة الرسومات التي تدخل الآن في كل كمبيوتر مزوَّد بشاشة عرض رسومية. وتخضع حاليًّا المعالجات ذات الأغراض الخاصة نفسها لبحثٍ مُكثف.
حظيت فئتان جديدتان من بِنية الكمبيوتر باهتمامٍ خاص. وكلتاهما تُمثلان تحديًا مُحتملًا للتفكير الحوسبي الحالي. إحداهما هي الشبكات العصبية، التي كانت القوة الدافعة وراء التطورات الحديثة في مجال الذكاء الاصطناعي. تُعيِّن الشبكة العصبية أنماط بت كبيرة (على سبيل المثال: وحدات البت لصورة فوتوغرافية) إلى أنماط بت أخرى (على سبيل المثال: الوجوه المُميزة في الصورة). وتنتقل إشارات المُدخلات عبر طبقاتٍ متعددة حيث تُدمَج وفقًا للأوزان المُعينة لها. وتُدرِّب خوارزمية خارجية الشبكة من خلال إتاحة عددٍ كبير من أزواج المُدخلات والمُخرجات وتعيين الأوزان الداخلية بحيث تعيِّن الشبكة كل مُدخلٍ بشكلٍ صحيح إلى المُخرج المقابل له. ويُعتبر تدريب الشبكة عمليةً حوسبيَّة معقدة، حيث تستغرق مدةً تتراوح ما بين عدة ساعات وعدة أيام. وتكون الشبكة المُدربة سريعةً جدًّا، حيث تُنتج مُخرجها فور تقديم المُدخل تقريبًا. وقد نجحت شرائح معالجة الرسومات في تحقيق استجابةٍ سريعة من الشبكات العصبية المدرَّبة. وعلى الرغم من أن الآلات القادرة فقط على مطابقة الأنماط والتعرُّف عليها ليست أجهزة كمبيوتر ذات أغراضٍ عامة، فإنها حقَّقت تقدمًا مذهلًا في أتمتة بعض المهام المعرفية البشرية، مثل التعرُّف على الوجوه. ومع ذلك، لا توجد آلية للتحقُّق من أن الشبكة العصبية ستُقدم المُخرج المناسب عند تقديم مُدخل غير موجود في مجموعة البيانات التي تدربت عليها. كما أن من المُزعج جدًّا لطريقة تفكيرنا الحوسبيَّة أن نعجز عن «تفسير» كيفية توليد شبكة حوسبيَّة لنتائجها.
أدى اختراع الكمبيوتر الإلكتروني بالكامل ذي البرامج المُخزنة إلى تغيير مفهوم الحوسبة نفسه، وخلق عالمًا جديدًا من المفاهيم الحوسبيَّة التي كان لها عددٌ قليل من النظائر أو النماذج الأولية السابقة عليها. وسرعان ما انحرفت المفاهيم والممارسات والمهارات الخاصَّة بتصميم البرامج وأجهزة الكمبيوتر عن الرياضيات والمنطق. وكان هذا تغيرًا جذريًّا.
تستخدم بنية الكمبيوتر الأخرى التي تحظى باهتمامٍ خاصٍّ تأثيرات ميكانيكا الكَم لمعالجة البيانات. وتمثل هذه الآلات الكَميَّة وحدات البت بدوران الإلكترون والاتصالات بالتأثيرات الكَميَّة مثل التشابك. ويمكن لأجهزة الكمبيوتر الكَميَّة إجراء بعض عمليات الحوسبة بشكلٍ أسرع بكثير من أجهزة فون نيومان.
من أمثلة هذه العمليات تحليل عددٍ مُركب كبير إلى العددَين الأولِيَّين المُكوِّنَين له. لطالما كانت صعوبة التحليل في بِنى فون نيومان هي المبدأ وراء أمان نظام التشفير «آر إس إيه»، والذي يُعَد حاليًّا أكثر نظم التشفير الواسعة الانتشار أمانًا. وتُهدد أجهزة الكمبيوتر الكَميَّة باختراق أمانه. ونظرًا إلى أن طريقة عملِها مختلفة تمامًا عن أجهزة فون نيومان، يجد معظم الأشخاص المُختصِّين في علوم الكمبيوتر وليس الفيزياء صعوبة كبيرة في فهم طريقة عمل هذه الآلات أو كيفية برمجتها.
يوضِّح هذان المثالَان كيف أن لكلِّ نوع من الآلات أسلوب تفكير حوسبي مُرتبطًا به، وهو جيد جدًّا في أنواع مُعينة من المشكلات. والشخص الذي يتمتَّع بمعرفة مُتقدمة في التفكير الحوسبي سيكون على درايةٍ بهذه البِنى، وكجزءٍ من عملية التصميم، سيختار أفضل بنيةٍ لحلِّ المشكلة. في الوقت نفسه، يمكن لأنواعٍ مُعينة من الآلات أن تُسبب نوعًا من «الغشاوة»؛ على سبيل المثال: يفكر المُصمِّمون المدربون على بِنية فون نيومان الأساسية بطريقةٍ تعتمد على التعليمات ويجدون صعوبةً في فهم كيفية عمل الكمبيوتر الكَمي.
حتى أربعينيات القرن العشرين، كانت الحوسبة تُعَد مهمةً عقلية لا يستطيع القيام بها إلا البشر، وفرعًا من فروع الرياضيات والمنطق. وأدَّى اختراع الكمبيوتر الإلكتروني بالكامل ذي البرامج المُخزَّنة إلى تغيير مفهوم الحوسبة نفسه، وخلق عالمًا جديدًا من المفاهيم الحوسبيَّة التي كان لها عدد قليل من النظائر أو النماذج الأولية السابقة عليها. وسرعان ما انحرفت المفاهيم والممارسات والمهارات الخاصة بتصميم البرامج وأجهزة الكمبيوتر عن الرياضيات والمنطق. وكان هذا تغيرًا جذريًّا.
وحتى أربعينيات القرن العشرين، كان التفكير الحوسبي مدمجًا في المعرفة الضمنية والمُمارسات المتطورة للعديد من المجالات المختلفة، التي من بينها الرياضيات والمنطق والهندسة والعلوم الطبيعية. وبعد الأربعينيات، بدأ التفكير الحوسبي يُصبح محور المهنة الجديدة التي صممت الآلات والأجهزة المعلوماتية للقيام بأعمالٍ لم يتصوَّر البشر أبدًا إمكانية القيام بها.