برمجة إجرائية

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

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

في الحقيقة هذا النمط من انماط البرمجة يملك عدة أسماء فالتسمية الرئيسية لهذا النمط من انماط لغات البرمجة يدعى اللغة الإجرائية (Procedural) كونها تعتمد الاجرائيات ويمكن ان تدعى باللغة الأمرية (imperative) وذلك من كونها لغة امرية بحيث تعتمد على تلقين الحاسب الحل خطوة بخطوة كما قد نجد تسمية البرمجة الهيكلية (structured) بحيث تعتمد على مفهوم استدعاء الاجرائيات أو كما هي معروفة بالروتين.

تعتمد هذه اللغة عدة مبادئ : تقسيم البرنامج إلى عدة اقسام جزئية لتسهيل القراءة واعادة الاستخدام تسمى هذه الاجزاء بعدة أسماء :

  • Procedures اجراءات
  • functions توابع
  • methods منهجيات
  • routines روتينات
  • subroutines روتينات فرعية

توصيف حل المشكلة خطوة بخطوة والتي تعد من مساوئ هذا النمط حيث يجب على المبرمج ان يقوم بحل المشكلة المتناولة بنفسه وليس الحاسب.

هذا النمط كان يعتبر الجيل الثالث من انماط البرمجة.

المقارنة مع اللغات الامرية[عدل]

اللغات الاجرائية هي أيضاً لغات امرية كون النمطين يملكان مؤشر للحالة الحالية بشكل واضح في بيئة التنفيذ.

المقارنة مع اللغات برمجة كائنية التوجه[عدل]

(object-oriented) ان الهدف الرئيسي للبرمجة الاجرائية بتقسيم مهام البرنامج إلى عدة تفرعات تسهل عمل المبرمج سواء كان ذلك التقسيم بمجموعة متحولات أو بنى معطيات أو توابع بينما في اللغات برمجة كائنية التوجه فإنه يتم تقسيم مهام البرنامج إلى أغراض objects وكل غرض يتم تغليفه بمتحولاته وتوابعه الخاصة فيه.

الفرق الرئيسي بين النمطين هو ان البرمجة الاجرائية تقوم بالعمليات على بنى المعطيات المتوفرة بينما في النمط كائني التوجه تتم العمليات على حزم مكونة من الغرض وبنى المعطيات الخاصة فيه.

التسميات تتغير بين النمطين على الرغم من انهما يملكان نفس الدلالات

  • object-oriented procedural
  • method function
  • object module
  • message function call
  • attribute variable

المقارنة مع اللغات المنطقية[عدل]

(logic) في لغات البرمجة المنطقية البرنامج هو عبارة عن مجموعة من قضايا أو حقائق منطقية وقواعد دلالية ,العمليات الحسابية تتم محاولة إيجاد برهان النظرية. من وجهة النظر هذه فإن لغات البرمجة المنطقية هي لغات تصريحية (declarative) تركز بشكل أساسي على ماهية المشكلة أكثر من كونها تركز على الحل بحد ذاته.

بكل الأحوال تستخدم اللغات المنطقية تكتيك السسلة الخلفية لعملية الاستنتاج (backward reasoning) يتم التعامل مع البرنامج على انه تساؤل يجب الاجابة عليه والبحث عن اجابته.

تعتمد اللغات المنطقية على قوانين هورن الممثلة بالشكل التالي :

H :- B1, …, Bn.

بحيث H هو الدالة الهدف و B1...n هي قضايا يجب البحث عن حلها لحل القضية الرئيسية

ويمكن تأويلها بشكل إجرائي على الشكل :

كي تحل\تظهر H اظهر\حل B1 وقم بحل\اظهار B2...... إلى Bn

وبلغة المنطق الرياضي يمكن القول الجملة السابقة تكافئ :

B1 and … and Bn → H

مبرمجي اللغات المنطقية المحترفين يستخدمون تفسيرات اجرائية ليكتبو برامجهم وتفسيرات تصريحية للتأكد من خلو الهدف من اخطاء والوصول للهدف.