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

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

الفهم في الحواسيب الرقمية
أما الحواسيب الرقمية القابلة للبرمجة لتنفيذ المهام المتعددة؛ فكعادة المخترعات تبدأ بسيطة ثم تتعقَّد فكذلك الحاسب بدأ آلة ميكانيكيَّة بخروم تشبه طريقة آلة النسيج ثم دقَّ وصغُرَ وصار إلكترونيًّا مُصمَّمًا بحفر مجهريِّة من معادن بهندسة نانوية وتحرَّك بالكهرباء لترى منها ما ترى.
وقد نقسم المنطق البرمجي إلى قسمين:
- 👁️ إدراك
- ⚡ فعل
فأما الإدراك 👁️:
فيحصل بأدوات الإحساس 👂📷 التي تُدخِلُ المرئيات والمسموعات ونحوها ؛ وقد تم محاكاتها بآلة التصوير (كاميرا) 📹 ولاقط الصوت (مايكروفون) 🎤. وكذلك أجهزة استشعار دقيقة مثل مستشعر الحرارة 🌡️ أو الرطوبة 💧 أو أجهزة قياس المسافة 📏 أو ماسحات البصمة 👆 أو الرنين المغناطيسي (MRI) 🏥 أو الموجات الكهرومغناطيسية في الأقمار الصناعية 🛰️ وأجهزة الملاحة الجوية والبحرية والبوصلة 🧭 أو ميزان التسوية الأفقية (Gyroscope) ⚖️ وغيرها كثير.
ومنه ما يحصل بالإدخال المباشر ⌨️ كما يكون في المستشفى: العمر والوزن والطول 🏥، أو بيانات الحضور والانصراف 🕐 أو المبيعات اليومية 🛒، أو بيانات طلاب أو متدربين في دورة تدريبية 🎓 أو سجلات المخزون 📦 ونحو ذلك. وهي كثيرة جدًّا.
والمرحلة الثانية من الإدراك، فهي الاستيعاب 🧩: وهي التي تجمع المحسوسات في وعاءٍ واحدٍ للاعتبار جُملةً واحدة، وقد تم محاكاتهُا بما نسميه الذاكرة 🧠 (وهي على مراحل تَبعُد وتَقترب من مركز المعالجة). وتشبه الذاكرة في الجهاز ما يراه الشخص في الوقت الواحد أو يمكن تصوُّرُه في الذهن وتخيله في لحظة واحدة. أما الذكريات المخزنة لدينا ، وما نكتبه في مذكرات فيكون مسجلاً في أجهزة التخزين 💾.
ثم مرحلة هي بين الإدراك والفعل، المعالجة ⚙️: وهي الآلات القابلة للبرمجة؛ مثل وحدة المعالجة المركزية (CPU) 💻 ووحدة المعالجة الرسومية (GPU) 🎮 وغيرها؛ حيث يوضَع المنطق المترجَم من لغات البرمجة ويشغِّل هذه الإلكترونيات المجهرية لتحقيق مقصوده منها.
ثم الفعل ⚡؛ بإرسال إشارات عبر منافذ الأجهزة المتصلة به حتى تتحول المعالجة الدقيقة لنتيجة ظاهرة جلية. فتنطبع صورة على الشاشة لنراها 🖥️، وتصدر ذبذبة هوائية نسمعها 🔊، وإشارات متتابعة لحركة مفاصل ذراع آلية 🤖 .. أو إلى آلة منطقية أخرى متصلة بالشبكة العالمية 🌐.
من خصائص الحواسيب التي تجعلها قوية:
- تسيير الأمور المتكررة
- معالجة الكميات الكثيرة
- الدقة المتناهية وقلة الخطأ
- عدم الملل وقلة المرض
- السرعة الفائقة
- الاتصال بالحواسيب الأخرى
- الاتصال بالأدوات الإلكترونية الأخرى
ومن مخرجات معالجتها:
- مهام معلوماتية: كالبحث في أكبر مدوَّنة عبر التاريخ (شبكة الإنترنت) والفرز والترتيب والتصنيف والترشيح والصياغة والاختصار والترجمة والنشر.
- مهام في الواقع الخارجي: أي التحكُّم عن طريق الأجهزة الإلكترونية التي تحوِّل الإشارات الكهربائيَّة إلى حركة؛ كخطوط الإنتاج والذراع الآلية وأنظمة الري الذكية وأنظمة تسيير الماشية الذكية والأبواب والإشارات والسيارات الذكية.
لغات البرمجة بين الإجمال والتفصيل
ومحلُّ التفاوُت في لغات البرمجة بالنِّسبة للمعاني المتمثِّلة في المنطق الحاسوبي يجعلها في طبقات، وهي طيفٌ من لغات البرمجة المرموزة، باعتبار التفصيل والإجمال:
- لغات من المستوى الأدنى. فكلما زاد التفصيل كانت أقرب إلى المنطق الرقمي حرفيًّا. مثالها: لغة الآلة (Machine Code) وأعلى منها لغة التجميع (Assembly)
- لغات من المستوى الأعلى. فكلما اختصرت كلماتُها تفاصيل أكثر علَتَ وارتفعت. مثالها لغة C وأعلى منها لغة Python وأعلى منها لغة SQL
وكل ما سبق من اللغات يفسُّره برمجيَّة حاسوبيَّة إلى تعليمات مفصَّلة قابلة للتنفيذ بالفيزياء الحركية. فاتجاه التفسير يكون من الإجمال إلى التفصيل. فكلما نزلنا في التعبير إلى التفاصيل زادت دقَّة ما يمكن التعبير عنه؛ وكان للحاسب أن ينفِّذ بكفاءة أحسن، وكلما أجملنا صار أسهل؛ ولا يزال المهندسون يُحتاجُ إليهم في كل طبقة من هذه الطبقات وفيما بينها.
لغات حديثة
وربما كانت اللغة واسعة التعبير: بحيث يمكن التفصل في موضع التفصيل، والإجمال في موضع الإجمال. وذلك مثل لغة Rust أو Zig أو لغة الأنظمة: Mojo.
الذكاء الاصطناعي
وغاية العلوِّ في فهم الحاسب اليوم قائم على النماذج اللغوية الضخمة (LLM) التي هي عقل الذكاء الاصطناعي (AI). حيث تفهم المعاني المستودعة في متنوَّع اللغات التي سبق ذكرها في الدرس السابق؛ من منطوق ومكتوب ومصوَّر وغيره مما تدرَّب عليه مرارًا وتكرارًا.
انظر: لماذا نتعلم البرمجة بينما الذكاء الاصطناعي يستطيع أن يقوم بهذه المهمة؟