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

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

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

تعتمد هذه اللغة عدة مبادىء : تقسيم البرنامج الى عدة اقسام جزئية لتسهيل القراءة واعادة الاستخدام تسمى هذه الاجزاء بعدة اسماء : Procedures اجراءات functions توابع methods منهجيات routines روتين subroutines روتين فرعي توصيف حل المشكلة خطوة بخطوة والتي تعد من مساوىء هذا النمط حيث يجب على المبرمج ان يقوم بحل المشكلة المتناولة بنفسه وليس الحاسب .

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

المقارنة مع اللغات الامرية imperative

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


المقارنة مع اللغات غرضية التوجه object-oriented

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

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

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


object-oriented procedural

method function

object module

message function call

attribute variable

المقارنة مع اللغات المنطقية Logic programming

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

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

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

H :- B1, …, Bn.

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

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

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

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

B1 and … and Bn → H

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