Procedural Programming Paradigm Overview

الـ Paradigm أو المذهب هو منهج يلتزم فيه أصحابه بمبادئ محددة، ويمتازون فيه بخصائص عن غيرهم، ولغات البرمجة المتعددة تجمعها خصائص مشتركة من حيث التنظيم وكيفية كتابة البرامج وتسلسلها ، والـ Paradigms المشهورة هم أربعة.
Procedural Programming Paradigm Overview
Procedural Programming Paradigm Overview

في هذه الصفحة

المقدمة

الـ Paradigm أو المذهب هو منهج يلتزم فيه أصحابه بمبادئ محددة، ويمتازون فيه بخصائص عن غيرهم، ولغات البرمجة المتعددة تجمعها خصائص مشتركة من حيث التنظيم وكيفية كتابة البرامج وتسلسلها.

والـ Paradigms المشهورة هم أربعة، وإن كانت تتفاوت في رواجها واستعمالاتها، وهي: الـ Procedural أو ما يعرف بالمذهب الإجرائي، , والـ Logic أو ما يعرف بمذهب المناطِقة، والـ Functional أو ما يعرف بمذهب الدوال، والـ Object Oriented أو ما يعرف بمذهب الكائنات.

وقد عرضت لكل منها بإيجاز، وآثرت التركيز على ما يختص به كل مذهب دون غيره، أو يشتهر به، ونقتصر في هذا المقال على المذهب الإجرائي أي الـ Procedural Paradigm.


Procedural Paradigm - المذهب الإجرائي

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

واخترت لغة Mary لضرب الأمثلة، وهي إحدى لغات Assembly، وهي لغة وسيطة بين لغة الآلة واللغات الحديثة، تستخدم في نظم التشغيل وفي النظم المدمجة كالساعات الذكية، وغير ذلك مما يحتاج إلى التواصل مع المعالج مباشرة لا من وراء حجاب.

إن النصوص البرمجية في Mary تبدو هكذا:

Mary Programming Language - لغة ماري

عمليات متسلسلة على قيم معرفة، وربما تأتي من المستخدم نفسه، ولكي نجري أي عملية على متغير ما، يلزمنا أن نضعه في حاوية تسمى -Accumulator-، وهو الهدف من الأمر -Load-، وضعت قيمة المتغير -X- في الحاوية أولا، ثم أضفت إليها ثلاثة، فصار المجموع خمسة.

ولنلق نظرة على ما بداخل الحاوية بعد تنفيذ كل سطر:

Sum Operation - عملية جمع

كي أجري عملية الجمع البدهية 2+3، وضعت الاثنين في الحاوية أولًا، ثم أضفت إليها ثلاثة، وانتهى البرنامج بطباعة المجموع على الشاشة.

ولعلك قد تقول: إنني أرى مثل هذا في كل لغة أعرفها، وهذا صحيح، فإن النهج الإجرائي موجود ضمنيا في كل اللغات على اختلاف الـ Paradigms الخاصة بها، يبدأ البرنامج من الأعلى للأسفل منحدِرًا، ولكن هنا قد لا تجد ما اعتدت عليه، فليس في ماري من عمليات الرياضيات إلا الجمع والطرح، دون الضرب والقسمة، وكل عملية تنفذها بسطر واحد في لغاتك، تُكتب بأسطر عديدة في ماري.


تقدروا دلوقتي تشتركوا في النشرة الأسبوعية لاقرأ-تِك بشكل مجاني تمامًا عشان يجيلكوا كل جديد بشكل أسبوعي فيما يخص مواضيع متنوعة وبشروحات بسيطة وسهلة وبجودة عالية 🚀

النشرة هيكون ليها شكل جديد ومختلف عن شكلها القديم وهنحاول انها تكون مميزة ومختلفة وخليط بين المحتوى الأساسي اللي بينزل ومفاجآت تانية كتير 🎉

Eqraatech Newsletter | Eqraatech - اقرأ-تِك | Substack
محتوى تقني متميز في مختلف مجالات هندسة البرمجيات باللغة العربية عن طريق تبسيط المفاهيم البرمجية المعقدة بشكل سلس وباستخدام صور توضيحية مذهلة. Click to read Eqraatech Newsletter, a Substack publication with hundreds of subscribers.

عملية الضرب - Multiplication Operation

ولنذكر الضرب الرياضي مثالًا:

Multiplication Operation - عملية الضرب

كيف تضرب عددين ببعضهما إن لم تكن عملية الضرب متاحة؟

ما الضرب إلا جمع مكرر، فإن قولي (5 ×3) يُراد به جمع الخمسة ثلاث مرات، أو جمع الثلاثة خمس مرات، وهو ما قمنا بعمله في المثال السابق، فقد استخدمت عملية الجمع لإجراء الضرب.

وكيف أكرر عملية الجمع بدون استخدام الـ Loops أي (الحلقات)؟

إن الحلقات أو الـ Loops في لغات البرمجة الحديثة تختصر علينا عملية التكرار، وهي قائمة على ثلاثة أمور:

  • متغير للعد
  • شرط الاستمرار في الحلقة
  • مقدار التغير بعد كل دورة

ولن نبتعد عن هذا الأساس، لكننا سننفذه بطريقة أكثر تفصيلًا، نحتاج فيها إلى متغير ثالث لتخزين النتيجة، وحيلتنا هي إضافة خمسة إلى النتيجة، مع طرح واحد من المتغير الثاني -Y-، ونكرر هذه العملية حتى تصبح قيمة هذا المتغير صفرًا، ونستخدم الأمر -Store- لوضع قيمة في متغير ما

تمثيل مرئي لمحتوى المتغيرات - Visual Representation of Variables

وإليك توضيحًا مرئيًا لموجز ما يحدث في الحاوية خلال عمليات الجمع والطرح والتخزين:

محتوى مرئي للحاوية أثناء تنفيذ العمليات - Visual Representation oc Accumulator

آلية التكرار - Loop and Jump

بقي أن نوضح آلية التكرار، وهي تحتاج إلى الأمر -Jump-، وهو يُستخدَم للانتقال من سطر إلى آخر، للأعلى أو للأسفل، وقد تبادرني بالسؤال:

ألم تقل إن البرنامج ينحدر للأسفل فحسب؟ ليس الأمر على إطلاقه، فقد نضطر للعودة إلى سطر سابق كما في حالة التكرار المذكورة، وإن كان الأصل هو النزول.  

عندما أنفذ الأمر -Jump-، فإنه يعيدني إلى الموضع الذي حددته له، وتكون على هذه الشاكلة:

Loop Under-the-hood - مفهوم حلقة التكرار

وهكذا نبقى في هذا البرنامج أبدًا، لولا وجود شرط الاستمرار، والشروط في ماري ثلاثة فحسب، فليس بإمكاننا التحقق إلا من هذه الحالات الثلاث:

  • هل الحاوية فيها عدد سالب؟
  • هل الحاوية تساوي صفرًا؟
  • هل الحاوية فيها عدد موجب؟

ذكرت لك أننا سنتوقف حالما تصبح قيمة المتغير -Y- صفرًا، لذا سنستخدم الشرط الثاني، والأمر المعد للشروط في ماري هو -skipcond-، ومعناه أننا سنتجاوز السطر التالي للشرط في حال تحققه، والسطر التالي هو ما يجعلنا نبقى في دائرة التكرار، وعند تجاوزه نخرج من الدائرة.

اشترك الآن بنشرة اقرأ-تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!