الفصل الثاني

الأدوات الحوسبية

إننا ننظر إلى الكمبيوتر على أنه محور الحوسبة؛ ومن ثَم، علم الكمبيوتر أيضًا. وهذا صحيح. لكن ينبغي الانتباه إلى بعض التحفظات.

أولًا: ربما تختلف الآراء بشأنِ ما يشكِّله «الكمبيوتر» بالتحديد. يرى البعض جهاز الكمبيوتر الشيءَ المادي الذي يعملون عليه يوميًّا (جهاز الكمبيوتر المحمول أو الكمبيوتر المكتبي في العمل). يراه آخرون نظامًا كاملًا تحت تصرُّفهم، بما في ذلك أدوات تيسير المهام مثل خدمة البريد الإلكتروني ومعالجة الكلمات والوصول إلى قواعد البيانات، وغير ذلك. لكن لا يزال البعض يربطه بنموذج رياضي بالكامل يسمَّى آلة تورنج (التي سنتناولها لاحقًا في هذا الفصل).

ثانيًا: بناءً على قبول أن الكمبيوتر هو أوتوماتون لمعالجة الرموز، هناك أيضًا أدوات أخرى لمعالجة الرموز مرتبطة بالكمبيوتر، ولكن يبدو أنها تختلف قليلًا مع فكرتنا البديهية عن «الكمبيوتر». ومن ثَم، ينبغي لنا أن نتحلى بمزيد من الانتقائية في نظرتنا إلى الأدوات التي تشارك في عملية الحوسبة؛ ومن هنا جاء مصطلح «الأدوات الحوسبية». في هذا الفصل، سنتناول طبيعةَ الأدوات الحوسبية.

في الفصل الأول، بدا الكمبيوتر (بشكل أو بآخر) وكأنه صندوق أسود. جلُّ ما ذكرناه أنه أوتوماتون لمعالجة الرموز: فهو جهاز يقبل البنيات الرمزية (التي تشير إلى المعلومات أو البيانات أو المعرفة حسبما يقتضي الحال) في صورة مدخلات وينتج (بفعله الخاص) بنيات رمزية في صورة مخرجات.

عندما ننوي فتْح هذا الصندوق الأسود، نجد أنه يشبه إلى حدٍّ ما مجموعةً من الصناديق المتداخلة: بمعنى أنه بالداخل يوجد صندوق أو عدة صناديق أصغر؛ كلما فتحنا صندوقًا من الصناديق الداخلية، تبيَّن لنا أنه توجد صناديق أصغر متشعِّبة منه. وهكذا دواليك. بالطبع درجة تداخل الصناديق السوداء لها نهاية، فعاجلًا أو آجلًا سنصل إلى الصناديق الأولية.

يُظهر كلٌّ من العالَمين الطبيعي والاصطناعي أمثلةً على هذه الظاهرة التي تسمَّى «التسلسل الهرمي». العديد من الأنظمة الفيزيائية والأحيائية والاجتماعية والتكنولوجية لها هيكل ذو تسلسل هرمي. الفرْق بين التسلسلات الهرمية الطبيعية (مثل الأنظمة الحية) والاصطناعية (مثل الأنظمة الثقافية أو التكنولوجية) هو أن العلماء عليهم «اكتشاف» التسلسلات الطبيعية و«ابتكار» التسلسلات الاصطناعية.

الكمبيوتر الحديث عبارة عن نظام من الأدوات الحاسوبية ذي تسلسل هرمي. وبذلك يصبح ابتكار قواعد ومبادئ التسلسل الهرمي وفهْمها وتطبيقها مجالًا فرعيًّا من علم الكمبيوتر.

هناك سبب وراء وجود التسلسلات الهرمية في كلٍّ من العالمين الطبيعي والاصطناعي، وإننا مدينون بتلك الرؤية — على وجه الخصوص — إلى العالِم الموسوعي هيربرت سايمون. قال سايمون إن التنظيم الهرمي وسيلة لإدارة «وجه التعقيد» في كيانٍ ما. وفي رأي سايمون، يصبح الكيان معقدًا إذا كان يتكون من عدة مكونات تتفاعل بعضها مع بعض بطريقة غير بسيطة (أو غير واضحة). وكما سنرى، يُظهر الكمبيوتر هذا النوع من التعقيد، ومن ثَم فهو أيضًا يتألف من نظام هرمي. إن مصمِّمي أنظمة أجهزة الكمبيوتر ومنفذيها مجبرون على هيكلتها بناءً على مبادئ التسلسل الهرمي وقواعده. ويتولى علماء الكمبيوتر مسئولية ابتكار هذه القواعد والمبادئ.

التسلسل الهرمي التركيبي

بوجه عام، تتكوَّن الأنظمة الهرمية من مكونات مقسمة إلى مستويين أو أكثر. وتُعنى أشهر مبادئ التسلسل الهرمي بالعلاقة بين المكونات داخل المستويات وفيما بينها.

fig1
شكل ٢-١: التجريد والتسلسل الهرمي داخل نظام الكمبيوتر.
يصوِّر الشكل ٢-١ ما أسميه «جهاز الكمبيوتر». (ماديًّا، قد يكون كمبيوترًا مكتبيًّا أو محمولًا أو جهازًا لوحيًّا أو حتى هاتفًا ذكيًّا. ولغرض التسهيل، سأفترض أنه واحد من أول نوعين.) لنفترض أنني لا أستخدم هذا الجهاز إلا في ثلاثة أنواع من المهام وهي: كتابة النصوص (كما أفعل الآن)، وإرسال رسائل البريد الإلكتروني، والبحث في شبكة الويب عبْر الإنترنت. وبذلك، أرى أن الكمبيوتر يتكون من ثلاث «أدوات حوسبية» سأسميها «النص» و«البريد الإلكتروني» و«البحث في الويب» (المستوى الأول من الشكل ٢-١)، على التوالي. كل أداة عبارةٌ عن أداة حوسبية لمعالجة الرموز. وكل أداة تتميَّز (من وجهة نظري بصفتي مستخدم الأداة) على أساس «إمكانيات» معينة. على سبيل المثال، توفِّر أداة «النص» واجهةَ المستخدم التي تتيح لي إدخال سلسلة من الحروف، وإعطاء الأوامر لمحاذاة الهوامش، وتعيين المسافات بين السطور، وتقسيم الصفحات، وبدء فقرة جديدة، وتعيين المسافة البادئة، وإدخال رموز خاصة، وإضافة حواشٍ سفلية وتعليقات ختامية، وتغيير الخط إلى مائل أو سميك، وغير ذلك. كما تتيح لي أيضًا إدخال سلسلة من الحروف التي تدخل في النص — باستخدام الأوامر — بحيث يمكنني استخدامه أو استرداده في وقت لاحق.

من وجهة نظري، أداة «النص» هي «جهاز الكمبيوتر» عندما أكتب مقالًا أو كتابًا (كما أفعل الآن)، وكذلك الحال مع أداة «البريد الإلكتروني» عندما أرسل رسائل البريد الإلكتروني وأداة «البحث في الويب» عندما أبحث في شبكة الويب. بعبارةٍ أدق، يتوافر لديَّ ثلاث صور خيالية مختلفة بديلة لماهية «جهاز الكمبيوتر». يشير علماء الكمبيوتر إلى تلك الأدوات الخيالية باسم «الأجهزة الافتراضية»، وإنشاء هذه الأجهزة الافتراضية وتحليلها وفهمها من أهم شواغل علم الكمبيوتر. فهي تشكِّل إحدى الظواهر التي تحيط بأجهزة الكمبيوتر التي أشار إليها بيرليس ونيويل وسايمون.

ويستخدم علماء الكمبيوتر مصطلح «المعمارية» بوجه عام للإشارة إلى البناء المنطقي أو الوظيفي للأدوات الحوسبية. (المصطلح «معمارية الكمبيوتر» له معنًى متخصص أكثر سنتناوله لاحقًا.) من وجهة نظري (أو وجهة نظر أي مستخدم آخر)، أداة «النص» الحوسبية لها معمارية خاصة أراها كما يلي: تتكوَّن من مترجم يترجم الأوامر وينفِّذها، وذاكرة مؤقتة أو عاملة محتواها هو النص الذي أكتبه، وذاكرة دائمة أو طويلة الأجل تحتفظ بكل النصوص المختلفة في صورة ملفات اخترت أن أحفظها، وقنوات مدخلات تنقل تدفقات الحروف والأوامر إلى الجهاز، وقنوات مخرجات تتيح عرض النصوص على الشاشة أو تتيح طباعتها (كنسخة ورقية). هذه المكونات «وظيفية»: ربما لا أعرف (أو لا أهتم على وجه الخصوص) بالوسائط الفعلية التي تتوافر فيها هذه المكونات. ولأنها تميز كلَّ ما أحتاج أنا (بصفتي مستخدمًا) إلى معرفته عن أداة «النص» حتى أتمكَّن من استخدامها، سنطلق عليها اسم معمارية أداة «النص».

وبالمثل، عند إرسال رسائل البريد الإلكتروني، تصبح أداة «البريد الإلكتروني» هي «جهاز الكمبيوتر»؛ أي إنها أداة حوسبية افتراضية. وهي أيضًا معالج للرموز. فهي تظهر واجهة مستخدم تمكنني من تحديد مستلم أو أكثر لرسالتي، وربط بنية رمزية أخرى أو أكثر (في شكل نصوص أو صور) في صورة مرفقات تُرسل مع الرسالة، وكتابة الرسالة، وإرسالها إلى المستلم أو المستلمين. وتتشابه معماريتها مع معمارية أداة «النص»؛ حيث إنها تُظهر أنواع المكونات ذاتها. فهذه الأداة بإمكانها ترجمة الأوامر، ولها قنوات مدخلات بما يمكِّن تدفُّق الحروف من التجمُّع في الذاكرة العاملة، وذاكرة طويلة الأجل لحفظ رسائلي بقدرِ ما أرغب من وقت، وقنوات مخرجات لعرض محتويات رسالة البريد الإلكتروني على الشاشة أو لطباعتها. بالإضافة إلى ذلك، يمكن لأداة «البريد الإلكتروني» الوصول إلى أنواع أخرى من الذاكرة الطويلة الأجل التي تحفظ البنيات الرمزية (كالنصوص والصور) التي يمكن إرفاقها مع الرسالة؛ لكن واحدة من الذاكرات الطويلة الأجل «خاصة» بالنسبة ﻟ «جهاز الكمبيوتر»، ومن ثَم لا يمكن لأحد غيري الوصول إليها، في حين تكون الأخرى «عامة»؛ أي إنها مشتركة مع مستخدمي أجهزة الكمبيوتر الأخرى.

وأخيرًا، توجد أداة «البحث في الويب». معمارية هذه الأداة مشابهة للأداتين السابقتين وهي: مترجم الأوامر، وذاكرة مشتركة/عامة (شبكة الويب) يمكن الوصول إلى محتوياتها (صفحات الويب)، وذاكرة عاملة خاصة تحتفظ (مؤقتًا) بالمحتويات التي يتم الوصول إليها من الذاكرة المشتركة، وذاكرة خاصة طويلة الأجل تحفظ هذه المحتويات، وقنوات مدخلات ومخرجات.

يتكوَّن التسلسل الهرمي الموضَّح في الجزء أ من الشكل ٢-١ من مستويين. في المستوى الأعلى (صفر) توجد أداة حوسبية واحدة وهي «جهاز الكمبيوتر»، ولكن المستوى الأدنى منه (الأول) يوضح أن «جهاز الكمبيوتر» يتكون من ثلاث أدوات مستقلة. هذا المستوى يُعَد صندوق أدواتي، إذا جاز التعبير. إن هذا النوع من التسلسل الهرمي، عندما يتكون الكيان من الكيانات ، و ، و ، وغيرها، شائع في الأنظمة المعقَّدة من أي نوع، سواء كانت طبيعية أو اصطناعية. لا شك أن هذا التسلسل الهرمي يميِّز الأدوات الحوسبية. ولا يوجد مصطلح مقبول بشكل عام له، لذلك سنسميه «التسلسل الهرمي التركيبي».

التجريد/التفصيل

كما أشرنا، يتكون المستوى الأول في الشكل ٢-١ من ثلاث أدوات حوسبية ذات معمارية متشابهة. فتتكون كلُّ أداة من ذاكرة مشتركة وذاكرة خاصة طويلة الأجل، وذاكرة عاملة خاصة، وقناة أو أكثر للمدخلات والمخرجات، ومترجم أو أكثر للأوامر.
لكن لا بد أن الأدوات الحوسبية الثلاث هذه قد مرَّت ﺑ «مرحلة تنفيذ» كي تكون أدوات عاملة فعلية: على سبيل المثال، لا بد أن شخصًا صمَّم أداة حوسبية ونفذها كي «تؤدي دور» أداة «النص» عند تنشيطها، مع إخفاء تفاصيل الآليات التي تحققت بها أداة «النص». لنُشِر إلى هذه الأداة المنفَّذة باسم «النص» (المستوى الثاني في الشكل ٢-١)؛ وهي عبارة عن برنامج كمبيوتر، أو أحد البرمجيات. العلاقة بين الأداتين «النص» و«النص» هي التجريد/التفصيل (الجزء ب في الشكل ٢-١):
«تجريد» الكيان هو الكيان الآخر الذي لا يكشف إلا عن سمات الكيان التي تعتبر ذات صلة في أحد السياقات، ولكنه يخفي سماتٍ أخرى تعتبر غير ذات صلة (في ذلك السياق). وعلى العكس، «تفصيل» الكيان هو الكيان الآخر الذي يكشف عن السمات التي كانت غائبة أو مخفية في الكيان .
أداة «النص» تجريد لأداة «النص»؛ وفي المقابل، أداة «النص» تفصيل لأداة «النص». لاحظ أن التجريد/التفصيل أيضًا هو أحد مبادئ التسلسل الهرمي؛ حيث يأتي التجريد في مستوًى أعلى، ويأتي التفصيل في مستوًى أدنى. لاحظ أيضًا أن عمليات التجريد والتفصيل تعتمد على السياق. إذ يمكن تجريد الكيان بطرقٍ مختلفة لإنتاج كيانين أو عدة كيانات ذات مستوًى أعلى ، و ، و…، و . وفي المقابل، يمكن تفصيل الكيان ذاته بطريقتين مختلفتين إضافيتين لإنتاج كيانات مختلفة ذات مستوًى أدنى ، و ، و…، و .

ولاتخاذ مبدأ التجريد/التفصيل باعتباره طريقةً لإدارة أوجه تعقيد الأدوات الحوسبية تاريخ زاخر يعود إلى الأعوام الأولى لميلاد الحوسبة. ربما كان الشخص الذي أسهم في زيادة وعي مجتمع علم الكمبيوتر الناشئ في ستينيات القرن العشرين بشأن أهمية التسلسل الهرمي هو إدسخر ديكسترا. سنرى لاحقًا أهميته الخاصة في عملية «بناء» الأدوات الحوسبية، ولكن في الوقت الحالي بحسب القارئ أن يقدِّر كيف يمكن أن تُفهم الأداة الحوسبية المعقَّدة فيما يتعلق بمبدأ التجريد/التفصيل، مثلما يمكن فهْم الأداة الحوسبية المعقَّدة فيما يتعلق بالتسلسل الهرمي التركيبي.

التسلسل الهرمي بحكم البناء

سنتوقف الآن عن النظر إلى «جهاز الكمبيوتر» من منظور المستخدم. إننا الآن نقف في موقف الذين أنشئوا «جهاز الكمبيوتر» بالفعل: مُنشئي الأداة. وبالمناسبة، ليس هؤلاء بجماعة متجانسة.

الأدوات «النص» و«البريد الإلكتروني» و«البحث في الويب» هي على وجه الخصوص عبارة عن برامج كمبيوتر — برمجيات — أنشأها المبرمجون (مطورو البرمجيات كما يحبون أن يسموا أنفسهم اليوم) بناءً على بنية أساسية أسميها هنا «القاعدة» (الجزء ﺟ والمستوى الثالث في الشكل ٢-١). تتكون هذه البنية الأساسية أيضًا من مجموعة أدوات حوسبية يمكن أن يستخدمها مصمِّمو أداة «النص» وغيرهم. إذن يصبح لدينا هنا نوع ثالث من التسلسل الهرمي وهو: التسلسل الهرمي بالبناء.

منذ الأيام الأولى لاختراع الكمبيوتر الرقمي، حرص المصمِّمون والباحثون على حماية المستخدم، بأقصى قدرٍ ممكن، من الحقائق المزعجة — والبغيضة في بعض الأحيان — الخاصة بالكمبيوتر المادي لإضفاء المزيد من السهولة على حياة المستخدم. ما فتئوا يطمحون إلى تصميم واجهة مستخدم سلسة وبسيطة وقريبة إلى اهتمامات المستخدم الخاصة، وتبقى ضمن نطاق راحته. فالمهندس المدني أو مهندس الميكانيكا يريد تنفيذ عمليات حوسبية تأمر الكمبيوتر أن يحل معادلات الميكانيكا الهندسية، ويريد الروائي من الكمبيوتر أن يضطلع بدور أداة الكتابة، كما يريد المحاسب «أن ينفُض عن كاهله» بعضَ العمليات الحسابية المضجرة ويتركها للكمبيوتر، وهلم جرًّا. في كل حالة، يريد المستخدم المعنيُّ صورةً خيالية بأن الكمبيوتر قد صُمِّم خصوصًا لتلبية احتياجاته. بعد ذلك على مدار السنين نشب جدالٌ كبير حول ما إذا كان الأفضل دمج تلك البنى الأساسية والأدوات الخاصة بالمستخدم في الجهاز المادي (تثبيتها في الجهاز) أم توفيرها بطريقةٍ أكثر مرونة باستخدام البرمجيات. وبوجه عام، تم ترشيد تقسيم البنى الأساسية والأدوات عبْر هذا الانقسام بحسب الاحتياجات الخاصة لفئات المستخدمين الذين تُطوَّر أجهزة الكمبيوتر من أجلهم.

وكما أبرزنا، يقدِّم «جهاز الكمبيوتر» هذه الصورَ الخيالية للمستخدم الذي تنحصر اهتماماته في كتابة النصوص وإرسال رسائل البريد الإلكتروني واستقبالها والبحث في شبكة الويب. فيوفِّر «جهاز الكمبيوتر» البنية الأساسية للمستخدم لكتابة النصوص وكتابة رسائل البريد الإلكتروني وإرسالها والبحث عن المعلومات على شبكة الويب، تمامًا كما توفِّر «القاعدة» (في مستوًى أدنى) هذه البنية الأساسية من أجل بناء البرامج التي تكون بمثابة مجموعة أدوات للمستخدم.

لكن حتى مطوِّرو البرمجيات الذين أنشئوا هذه التجريدات بتنفيذ برنامج «النص» وغيره من البرامج لا بد أن لديهم صورهم الخيالية؛ فهم أيضًا مستخدمون للكمبيوتر مع أن تفاعلهم مع الكمبيوتر أكثر تعقيدًا من تفاعلي حينما أستخدم أداة «النص» أو «البريد الإلكتروني». يمكننا أن نسميهم «مبرمجو التطبيقات» أو «مطورو برمجيات التطبيقات»، ويجب حمايتهم هم أيضًا من بعض الحقائق بشأن الكمبيوتر المادي. فهم كذلك بحاجة إلى بنية أساسية يمكنهم العمل «معها» ويمكنهم إنشاء أجهزتهم الافتراضية بناءً «عليها».
في الشكل ٢-١، يمثِّل الكيان المسمَّى «القاعدة» هذا الأساس. وفي الحقيقة، هو تجريد لمجموعة من البرامج (نظام برمجيات) موضَّحة في الشكل باسم «نظام التشغيل» (المستوى الرابع) والتي تنتمي إلى فئة من الأدوات الحوسبية التي يطلَق عليها «أنظمة التشغيل».
نظام التشغيل هو أداة التنسيق الرائعة؛ هو أداة الحماية الفعَّالة، إنه الساحر الإلكتروني الكبير. في بدايات تطوير نظام التشغيل في ستينيات القرن العشرين، كان يسمَّى «المشرف» أو «المسئول التنفيذي»، وهذان المصطلحان يبينان مسئولياته جيدًا. فوظيفته إدارة موارد الكمبيوتر المادي وتقديم مجموعة موحَّدة من الخدمات لكل المستخدمين، سواء كانوا مستخدمين عاديين أو مطوري برمجيات. تتضمَّن هذه الخدمات «أدوات التحميل» التي تقبل البرامج التي سيجري تنفيذها وتخصصها للمواقع المناسبة في الذاكرة؛ وإدارة الذاكرة (والتي تضمن عدم تعدي أو تداخل أحد برامج المستخدم مع الذاكرة التي يستخدمها برنامج آخر)؛ وتوفير ذاكرة افتراضية (والتي توهم المستخدمين بأن الذاكرة غير محدودة)؛ والتحكم في الأجهزة المادية (مثل الأقراص والطابعات والشاشات) التي تؤدي الوظائف الخاصة بالمدخلات والمخرجات؛ وتنظيم سعة تخزين المعلومات (أو البيانات أو المعرفة) في الذاكرات الطويلة الأجل بحيث يمكن الوصول إليها بسهولة وسرعة؛ وتنفيذ الإجراءات وفقًا لقواعد موحَّدة (تسمَّى «البروتوكولات») تمكَّن أحد البرامج على أحد أجهزة الكمبيوتر من طلب خدمة من برنامج على كمبيوتر آخر عبْر شبكة بينهما؛ وحماية برنامج أحد المستخدمين من أن يتلفه برنامج مستخدم آخر، سواء عن طريق الخطأ أو عن طريق أذًى متعمَّد من المستخدِم الآخر. البنية الأساسية التي تسمَّى «القاعدة» في الشكل ٢-١ توفِّر هذه الخدمات — وهي مجموعة من الأدوات الحوسبية؛ إنها تجريد لنظام التشغيل «نظام التشغيل».
لكن نظام التشغيل ليس جدار حماية بالمعنى الحرفي بحيث يمنع كل التفاعل بين البرنامج المصمَّم في المستوى الأعلى منه (مثل «البريد الإلكتروني»)، والكمبيوتر المادي في المستوى الأدنى منه. ففي نهاية الأمر، يعمل البرنامج بإصدار التعليمات أو الأوامر إلى الكمبيوتر المادي، ومعظم هذه التعليمات سيترجمها الكمبيوتر المادي مباشرةً (وفي هذه الحالة، تسمَّى هذه التعليمات «تعليمات الآلة»). ما يفعله نظام التشغيل هو «تمرير» تعليمات الآلة إلى أجهزة الكمبيوتر المادية بطريقة محكمة، ويترجم التعليمات الأخرى بنفسه (مثل التعليمات الخاصة بمهام المدخلات والمخرجات).
يكاد هذا يصل بنا إلى نهاية التسلسل الهرمي المصوَّر في الشكل ٢-١. يظهر برنامج «نظام التشغيل» على أنه مبني في مستوًى أعلى من الكمبيوتر المادي (المستوى الخامس). وفي الوقت الحالي، سنفترض أن الكمبيوتر المادي (يشيع استخدام لفظة «العتاد» عنه ببساطة) هو «الأداة الحقيقية» (أخيرًا)؛ بمعنى أنه لا يوجد شيء افتراضي فيه. سنرى أن هذا أيضًا عبارة عن صورة خيالية؛ حيث إن الكمبيوتر المادي له تسلسله الهرمي الداخلي وله مستوياته الخاصة من التجريد والتركيب والبناء. ولكن يمكننا على الأقل إنهاء المناقشة الحالية بالملاحظة التالية: يوفِّر الكمبيوتر المادي بنيةً أساسية وصندوقَ أدوات يحتوي على مجموعة كاملة من التعليمات (تعليمات الآلة)، ومجموعةً كاملة من أنواع البيانات (ارجع إلى الفصل الأول)، وأنماطًا لتنظيم التعليمات والبيانات في الذاكرة والوصول إليها، ومجموعةً معينة من الأدوات الأساسية الأخرى التي تتيح تشغيل البرامج (لا سيما نظام التشغيل) التي يمكن تنفيذها باستخدام الكمبيوتر المادي.

فئات الأدوات الحوسبية الثلاث

في كتاب حديث يتناول تاريخ ميلاد علم الكمبيوتر، علقتُ قائلًا إن السمة المميزة في علم الكمبيوتر تكمُن في فئاته الثلاث من الأدوات الحوسبية.

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

سنقابل نوعًا آخر مهمًّا من الأدوات الحَدِّية لاحقًا. أما في الوقت الحالي، فما يجعل علم الكمبيوتر مميزًا وغريبًا ليس وجود الأدوات الحدِّية فحسب، بل أيضًا إن ما نطلق عليه «الكمبيوتر» هو عبارة عن جهاز يجمع بين الأدوات المادية والمجردة والحدِّية.

على مدارِ ما يقرُب من ستة عقود تطوَّر خلالها علم الكمبيوتر وأصبح مجالًا علميًّا قائمًا بذاته، ظهر العديد من الفئات الفرعية المميزة التي نشأت من هذه الفئات الثلاث للأدوات الحوسبية. يوضح الشكل ٢-١ أربعة أمثلة على ذلك، وهي أداة المستخدِم، والبنية الأساسية، والبرمجيات، والكمبيوتر المادي. بالطبع ترتكز الحوسبة على بعض الفئات الفرعية أكثرَ من غيرها لأنها «أشمل» من غيرها من حيث النطاق والاستخدام. إضافة إلى ذلك، تشكِّل الفئات الأساسية والفئات الفرعية تسلسلًا هرميًّا تركيبيًّا خاصًّا بها.

فيما يلي قائمة ببعض هذه الفئات الأساسية والفرعية المعترَف بها حاليًّا في علم الكمبيوتر. يوضح اصطلاح الترقيم هنا العلاقةَ الهرمية بينها. ونظرًا لأنه قد لا يعرف القارئ العديد من هذه العناصر، فسأشرح أبرزَها في سياق هذا الكتاب.

  • [١] الأدوات المجرَّدة

    • [١-١] الخوارزميات

    • [١-٢] الأوتوماتا المجردة

      • [١-٢-١] آلات تورنج

      • [١-٢-٢] الأجهزة التتابعية

    • [١-٣] اللغات التعريفية

    • [١-٤] المنهجيات

    • [١-٥] اللغات

      • [١-٥-١] لغات البرمجة

      • [١-٥-٢] لغات وصف العتاد

      • [١-٥-٣] لغات البرمجة الدقيقة

  • [٢] الأدوات الحدِّية

    • [٢-١] أدوات وواجهات المستخدم

    • [٢-٢] معماريات الكمبيوتر

      • [٢-٢-١] معماريات المعالج الأحادي

      • [٢-٢-٢] معماريات المعالج المتعدد

      • [٢-٢-٣] معماريات الكمبيوتر الموزَّعة

    • [٢-٣] البرمجيات (البرامج)

      • [٢-٣-١] أسلوب فون نيومان

      • [٢-٣-٢] الأسلوب الوظيفي

  • [٣] الأدوات المادية

    • [٣-١] أجهزة الكمبيوتر المادية/العتاد

    • [٣-٢] الدوائر المنطقية

    • [٣-٣] شبكات الاتصالات

«الآلة الجامعة العظيمة»

توجد أداة حوسبية يجب أن تُميَّز عن غيرها. إنها آلة تورنج، وهي جهاز مجرد يُنسب اسمه إلى صانعه وهو عالِم المنطق والرياضيات ونظريات الكمبيوتر آلان تورنج. اسمحوا لي أن أصفَ هذه الآلة، أولًا ثم أشرح لماذا تستحق هذا الاهتمام الخاص.

تتكوَّن آلة تورنج من شريط غير محدود من حيث الطول ومقسم إلى مربعات. يمكن أن يحمل كل مربع رمزًا واحدًا فقط. وفي أي لحظة من الزمن، يستقر رأس القراءة/الكتابة على مربع واحد من الشريط، والذي يصبح هو المربع «الحالي». الرمز في المربع الحالي (بما في ذلك رمز «الفراغ» أو «المسافة») هو «الرمز الحالي». ويمكن أن تكون الآلة في حالة واحدة ضمن عدد محدود من الحالات. حالة الآلة في أي وقت معيَّن هي «الحالة الحالية». وبناءً على الرمز الحالي والحالة الحالية، يمكن لرأس القراءة/الكتابة أن تكتب رمزًا على المربع الحالي (المخرَج) (بحيث يحل محلَّ الرمز الحالي)، أو تحرِّك أحد المربعات جهة اليمين أو اليسار، أو تحدِث تغييرًا في الحالة فتسمَّى «الحالة التالية». وتتكرَّر دورة التشغيل مع الحالة التالية مثل الحالة الحالية، ويحمل المربع الحالي الجديد رمزًا حاليًّا جديدًا. ويحدِّد «جدول الحالات» العلاقةَ بين الحالات الحالية (المحتملة)، ورموز المدخلات الحالية (المحتملة)، ورموز المخرجات (المحتملة)، وحركات رأس القراءة/الكتابة، والحالات التالية (المحتملة). وسلوك الآلة يحكمه جدول الحالات والآلية غير المرئية التي تؤثِّر في عمليات القراءة والكتابة، وتحرِّك رأس القراءة/الكتابة، وتُحدِث تغييرات في الحالة.

يصوِّر الشكل ٢-٢ آلةَ تورنج بسيطة للغاية تقرأ سلسلة مدخلات مكوَّنة من العددين و ، مكتوبة على شريط، وتستبدل بها أخرى مكوَّنة كلها من العدد إلا في حالة فحص السلسلة بكاملها، فتكتب العدد إذا كان عدد أعداد في السلسلة فرديًّا وتكتب العدد إذا كان غير ذلك. بعد ذلك «تتوقَّف» الآلة. ويشير وجود رمز خاص على الشريط — ولنقل إنه الرمز مثلًا — إلى نهاية سلسلة المدخلات. يمكن أن يُطلق على هذه الآلة اسم «مكتشف التكافؤ»: فهي تستبدل بسلسلة المدخلات بكاملها أصفارًا وتستبدل بالرمز العدد أو بناءً على ما إذا كان تكافؤ (عدد أعداد في) سلسلة المدخلات فرديًّا أم زوجيًّا.
fig2
شكل ٢-٢: البنية العامة لآلة تورنج.
تحتاج هذه الآلة ثلاث حالات، أولها، الحالة وتدُل على اكتشاف عدد فردي من العدد في سلسلة المدخلات في أي وقت من تشغيل الآلة. وثانيها الحالة وتمثل اكتشاف عدد زوجي من العدد في أي وقت من تشغيل الآلة. وثالثها الحالة وهي حالة التوقف؛ أي إنها تؤدي إلى توقُّف الآلة. وعندما يبدأ عمل الآلة، تشير رأس القراءة/الكتابة إلى المربَّع الذي يحمل الرقم الأول في سلسلة المدخلات.
السلوك المحتمَل من آلة تورنج يحدِّده جدول الحالات (انظر الجدول ٢-١).
جدول ٢-١: جدول الحالات
الحالة الحالية رمز المدخلات الحالة التالية رمز المخرجات حركة رأس القراءة/الكتابة
اليمين
اليمين
اليمين
اليمين
يحدِّد كل صف في هذا الجدول عمليةً مميزة من جانب الآلة، ولا بد من تفسيره، كلٌّ على حدة. على سبيل المثال، يقول الصف الأول ما يلي: إذا كانت الحالة الحالية هي ورمز الإدخال الحالي هو ، فإن الحالة التالية (أيضًا) ستكون ويُكتب رمز الإدخال على الشريط وتتحرَّك رأس القراءة/الكتابة موضعًا واحدًا جهة اليمين. ويخبرنا الصف الأخير أنه إذا كانت الحالة الحالية هي ورمز الإدخال هو ، فستحل القيمة محلَّ رمز وتصبح الحالة التالية هي حالة التوقف . ولا يكون ثمَّة حركة أخرى لرأس القراءة/الكتابة.
لنفترض أن سلسلة المدخلات كما هي موضحة في الشكل ٢-٢ وأنه تم ضبط الآلة على الحالة . يمكن للقارئ التثبُّت بسهولة من أن تسلسل الحالات ومحتويات الشريط في الدورات المتتالية من تشغيل الآلة سيكونان بالشكل التالي. يشار إلى موضع رأس القراءة/الكتابة في كل دورة بعلامة النجمة على يمين رمز الإدخال «الحالي»:

إذن، ستكون ثمة آلة تورنج مستقلة (ببساطة أطلق تورنج ذاته عليها اسم «آلة حوسبة») لكل مهمة مستقلة من مهام معالجة الرموز. ستحدد كل آلة تورنج (ذات غرض خاص) أبجدية الرموز التي ستتعرف عليها الآلة، ومجموعة الحالات المحتملة، والمربع الأولي الذي ستُوضع عنده رأس القراءة/الكتابة، وجدول الحالات، والحالة الحالية الأولية. وفي نهاية تشغيل الآلة (حينما تصل إلى حالة «التوقُّف» إن وُجدت)، تعطي المخرجات المكتوبة على الشريط نتيجة مهمة معالجة الرموز.

وبذلك يمكن مثلًا بناء آلة تورنج لجمع العددين و ، والممثلة بالرمز متبوعًا بمجموعة من أعداد الواحد ويتبعهما مسافة، ثم يتبع ذلك الرمز متبوعًا بمجموعة من أعداد الواحد، بحيث يُترك ناتج جمع (في صورة السلسلة ثم مجموعة أعداد الواحد) على الشريط. آلة تورنج أخرى لها سلسلة واحدة مكوَّنة من الرموز و و في صورة مدخلات ستستبدل بسلسلة المدخلات هذه «صورة منعكسة» (والتي تسمَّى «صورة متناظرة») منها. على سبيل المثال، إذا كانت سلسلة المدخلات هي ، فإن المخرجات ستكون . وبذلك تصبح آلة تورنج آلةً لمعالجة الرموز. وهي بالطبع أداة مجردة على نحوٍ تام، حيث إن الآلة نفسها عبارة عن بنية رمزية. ولم يكن أحد يحلُم بصنع نسخة مادية من آلة تورنج في صورة أداة «عملية».
لكن تورنج زاد على ذلك. فقد أوضح أن بإمكان المرء بناء جهاز حوسبة — ولنقل الجهاز — يمكن أن يحاكي كل آلات تورنج الأخرى. إذا توافر للجهاز شريط يحتوي على وصف جدول الحالات لآلة تورنج بعينها، فسيترجم الجهاز ذلك الوصف وينفِّذ المهمة ذاتها التي ستنفِّذها تلك الآلة بعينها. وبذلك يُطلق على الجهاز «آلة تورنج العامة».

تكمُن أهمية اختراع تورنج في زعمه بأن «أي إجراء نراه على أنه إجراء حوسبي بطريقة «بديهية» أو «طبيعية» هو إجراء يمكن إنجازه بآلة تورنج». ويترتب على ذلك أن آلة تورنج العامة يمكنها تنفيذُ أي شيء نعتبر أنه حوسبة. يطلق على ذلك الزعم «أطروحة تورنج» (أو يطلق عليه في بعض الحالات أطروحة تشرتش-تورنج؛ حيث إن عالِم منطق آخر وهو ألونزو تشرتش توصَّل إلى الاستنتاج ذاته باستخدام خط تفكير مختلف تمامًا).

يمكننا أن نعتبر آلة تورنج بمثابة «الآلة الجامعة العظيمة». إنها الجامعة لكل الأدوات الحوسبية؛ بمعنى أنه يمكن «اختزال» كل الأدوات الحوسبية وسلوكها فيما تنجزه آلة تورنج.

في ظلِّ ما سبق، وبعد الاعتراف بوجود فرع كامل من علم الكمبيوتر يسمَّى «نظرية الأوتوماتا»، يدرُس بنيةَ آلة تورنج وسلوكها، وقدراتها وحدودها بجميع المظاهر التي يمكن تصوُّرها (مثل حصر الشريط بطول محدَّد أو إدخال عدة أشرطة لها عدة رءوس للقراءة/الكتابة)، لا بد من الاعتراف أيضًا بالموقف المناقض المتمثل في أن آلة تورنج لم يكن لها تقريبًا تأثيرٌ في اختراع أي أداة حوسبية عملية (أو قابلة للاستخدام) ولا في تصميمها ولا تنفيذها ولا سلوكها بأي شكل من الأشكال، وكذلك لم يكن لها تأثير في تفكير علماء الكمبيوتر الذين يتعاملون مع هذه الأدوات ولا في ممارساتهم!

الحوسبة التفاعلية

إضافة إلى ذلك، ظهر منذ زمن تورنج أدوات حوسبية تعمل بعضها مع بعض أو مع أنظمة أخرى طبيعية أو اصطناعية بطريقة تفاعلية. يشير «التفاعل» هنا إلى التأثير المتبادل أو التبادلي فيما بين «الكيانات» الاصطناعية (بما في ذلك الاجتماعية) و/أو الطبيعية بحيث تشكِّل بعضها مع بعض نظامًا من نوعٍ ما.

لنضرب المَثل بدفعي فاتورةَ أحد المرافق؛ ينطوي هذا على تفاعلي وجهاز الكمبيوتر المحمول الخاص بي مع نظام كمبيوتر البنك الخاص بي ونظام كمبيوتر شركة المرافق. في هذا الموقف، تؤثِّر أربعة كيانات (ثلاث أدوات حوسبية وأنا) في عمليات نقل المعلومات والعمليات الحوسبية بطريقة تفاعلية عن طريق تبادل الرسائل والأوامر والبيانات.

أو لنضرب المَثل بالأداة الحوسبية المجرَّدة «النص» في الشكل ٢-١. تشكِّل هذه الأداة واجهةً بين الإنسان والكمبيوتر حيث يتفاعل المستخدِم البشري لأداة «النص» والنظام البرمجي «النص» بعضهما مع بعض. والأوامر التي توفِّرها أداة «النص» ويصدرها المستخدم تجعل أداة «النص» تستجيب (مثل بدء سطر جديد في النص، وإنشاء مسافة بين الكلمات، وإضافة حروف لتكوين كلمات في النص، وإنشاء مسافة بدء فقرة جديدة، وكتابة كلمة بخط مائل، وغير ذلك)، واستجابة أداة «النص» تحفِّز — بدورها — الاستجابةَ من جانب المستخدم البشري.

ولا تمتثل هذه الأنظمة التفاعلية للفكرة «القياسية» لآلة تورنج؛ حيث إن آلة تورنج عبارة عن أداة مستقلة لها مدخلات منقوشة بالفعل على الشريط قبل تشغيل الآلة ولا تُرى مخرجاتها إلا عندما تتوقَّف. أما الأدوات الحوسبية التفاعلية (مثل نظام البنك الخاص بي أو نظام شركة المرافق) فقد لا تتوقَّف عن العمل مطلقًا.

ونظرًا إلى هذه الاعتبارات، يشدِّد بعض علماء الكمبيوتر على أن دراسة آلات تورنج — نظرية الأوتوماتا — حريٌّ بها أن تنتمي إلى علم الرياضيات والمنطق الرياضي أكثرَ من علم الكمبيوتر، وعلى الجانب الآخر يشكِّك آخرون في صحة أن أطروحة تورنج تشمل الحوسبة بكاملها.

علم الكمبيوتر باعتباره علمًا اصطناعيًّا

تلخيصًا لما تناولناه حتى الآن، الأدوات الحوسبية عبارة عن أشياء «مصنوعة»؛ فهي تعالج البنيات الرمزية التي تدُل على المعلومات أو البيانات أو المعرفة (بناءً على وجهة نظر المرء والسياق). وعلم الكمبيوتر هو علم الأدوات الحوسبية.

غنيٌّ عن البيان أن الأدوات الحوسبية ليست جزءًا من العالم الطبيعي بالمعنى الذي تدُل عليه الصخور والمعادن والحفريات، والنباتات والحيوانات، والنجوم والمجرَّات والثقوب السوداء والجسيمات الأولية والذرات والجزيئات. بل الإنسان هو مَن يوجِد هذه الأدوات. وعليه، فعلم الكمبيوتر ليس علمًا «طبيعيًّا». إذن، أيُّ نوع من العلوم هو؟

يقول أحد الآراء، ما دامت الأدوات الحوسبية نفعيةً ومن ثَم تكنولوجية، فإن علم الكمبيوتر ليس علمًا «بحق» على الإطلاق. بل هو فرع من علم الهندسة. ومع ذلك، فإن العلوم الهندسية التقليدية مثل ميكانيكا المواد ونظرية الإنشاءات والديناميكا الحرارية والمعادن الفيزيائية ونظرية الدوائر الكهربية، وكذلك العلوم الهندسية الحديثة مثل الهندسة الحيوية والهندسة الوراثية هي كلها مقيدة مباشرةً بقوانين الطبيعة. وتبدو الأدوات الحوسبية الحدِّية والمجردة بعيدةً كلَّ البعد عن الأدوات المادية الصرفة — كالإنشاءات وأدوات الماكينات والمحركات والدوائر المتكاملة والمعادن والسبائك والمواد المركَّبة وغيرها — التي درسها علماء الهندسة. هذا من أسباب انتماء الأدوات الحوسبية المادية (عتاد الكمبيوتر) في الغالب إلى نطاق مدارس الهندسة، في حين أن الأدوات الحوسبية الحدية والمجردة تنتمي إلى مدارس العلم.

ومع ذلك، هناك شيء مشترك بين جميع الأدوات، سواء الهندسية أو الحوسبية: وهو أنها كلها نتاج لأفكار الإنسان وأهدافه واحتياجاته ورغباته. «تكون الأدوات ذات غرض محدَّد؛ فهي تبرز أهداف صانعيها».

يطلِق هيربرت سايمون على كل العلوم المعنية بالأدوات (المجردة أو الحدية أو المادية) اسم «العلوم الاصطناعية». وهي تتميَّز عن العلوم الطبيعية لأنها يجب ألا تغفل جانب الأهداف والأغراض. فالشيء الطبيعي ليس له غرض: بمعنى أن الصخور والمعادن، والنجوم والمجرَّات، والذرات والجزيئات، والنباتات والكائنات الحية لم تأتِ إلى الكون لغرضٍ بعينه. إنها «موجودة» وحسب. فعالِم الفلك لا يسأل: «ما الهدف من المجرة؟» ولا يسأل عالِم الجيولوجيا: «ما الغرض من الصخور النارية؟» إن مهمة عالِم الطبيعة أن يكتشف القوانين التي تحكم بِنى الظواهر الطبيعية وسلوكها، ويتساءل كيف أتت إلى الوجود، ولكن ليست مهمته أن يسأل لماذا — لأي غرض — أتت إلى الوجود.

على الجانب الآخر، أُوجِدت الأدوات في العالم مجسِّدة لاحتياجات الإنسان وأهدافه. ولا يكفي أن نسأل ما القوانين والمبادئ التي تحكم هيكلَ الأداة الحوسبية وسلوكها (أو — في هذا الصدد — الأهرامات والجسور المعلَّقة ومسرِّعات الجسيمات وسكاكين المطبخ) إذا تجاهلنا عندئذٍ سببَ وجودها.

تنطوي العلوم الاصطناعية على دراسة «العلاقة بين الوسائل والغايات»: بمعنى الأهداف أو الاحتياجات المرادة من الأداة، والأداة التي صُنعت لتلبية الاحتياجات. إذن، تشير كلمة «علم» في علم الكمبيوتر إلى علم الوسائل والغايات. وبناءً على أحد احتياجات الإنسان أو أهدافه أو أغراضه، فإنها تطرح السؤال: كيف تتمكَّن الأداة الحوسبية من تحقيق ذلك الهدف بشكل قابل للإثبات؟ بمعنًى آخر، كيف يمكن أن يبرهن المرء — من خلال التفكير المنطقي أو الملاحظة أو التجربة — أن الأداة الحوسبية تلبي ذلك الغرض؟

جميع الحقوق محفوظة لمؤسسة هنداوي © ٢٠٢٤