برمجة إجرائية: الفرق بين النسختين

[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
لا ملخص تعديل
سطر 1:
{{مصدر}}
{{أنماط البرمجة}}
هو نمط برمجة مشتق من [[برمجة هيكلية|البرمجة الهيكلية]] يستند إلى مفهوم استدعاء الإجراء، وما الإجراء إلا سلسلة من الخطوات الحسابية التي يتعين الاضطلاع بها، والتي يمكن استدعاؤها في أي وقت أثناء تنفيذ البرنامج، من قبل إجراءات أخرى أو من قبل الإجرائية ذاتها.
 
في الحقيقة هذا النمط من انماط البرمجة يملك عدة أسماء فالتسمية الرئيسية لهذا النمط من انماط لغات البرمجة يدعى Proceduralاللغة programmingالإجرائية اي لغة اجرائية(Procedural) كونها تعتمد الاجرائيات ويمكن ان تدعى بباللغة الأمرية (imperative programming اي لغة امرية) وذلك من كونها لغة امرية بحيث تعتمد على تلقين الحاسب الحل خطوة بخطوة كما قد نجد تسمية structuredالبرمجة programmingالهيكلية اي برمجة هيكلية(structured) بحيث تعتمد على مفهوم استدعاء الاجرائيات أو كما هي معروفة بالروتين.
 
تعتمد هذه اللغة عدة مبادئ :
تقسيم البرنامج إلى عدة اقسام جزئية لتسهيل القراءة واعادة الاستخدام تسمى هذه الاجزاء بعدة أسماء :
* Procedures اجراءات
* functions توابع
* methods منهجيات
* routines روتينروتينات
* subroutines روتينات فرعية
subroutines روتين فرعي
توصيف حل المشكلة خطوة بخطوة والتي تعد من مساوئ هذا النمط حيث يجب على المبرمج ان يقوم بحل المشكلة المتناولة بنفسه وليس الحاسب.
 
هذا النمط كان يعتبر [[الجيل الثالث من لغات البرمجة|الجيل الثالث من انماط البرمجة]].
 
== المقارنة مع اللغات الامرية imperative ==
اللغات الاجرائية هي أيضاً لغات امرية كون النمطين يملكان مؤشر للحالة الحالية بشكل واضح في بيئة التنفيذ.
 
== المقارنة مع اللغات غرضية التوجه object-oriented ==
(object-oriented) ان الهدف الرئيسي للبرمجة الاجرائية بتقسيم مهام البرنامج إلى عدة تفرعات تسهل عمل المبرمج سواء كان ذلك التقسيم بمجموعة متحولات أو بنى معطيات أو توابع بينما في اللغات غرضية التوجه فإنه يتم تقسيم مهام البرنامج إلى أغراض objects وكل غرض يتم تغليفه بمتحولاته وتوابعه الخاصة فيه.
 
الفرق الرئيسي بين النمطين هو ان البرمجة الاجرائية تقوم بالعمليات على بنى المعطيات المتوفرة بينما في النمط غرضي التوجه تتم العمليات على حزم مكونة من الغرض وبنى المعطيات الخاصة فيه.
 
التسميات تتغير بين النمطين على الرغم من انهما يملكان نفس الدلالات
* object-oriented procedural
* method function
* object module
* message function call
* attribute variable
== المقارنة مع اللغات المنطقية Logic programming ==
(logic) في لغات البرمجة المنطقية البرنامج هو عبارة عن مجموعة من قضايا أو حقائق منطقية وقواعد دلالية ,العمليات الحسابية تتم محاولة إيجاد برهان النظرية. من وجهة النظر هذه فإن لغات البرمجة المنطقية هي لغات declarative تصريحية (declarative) تركز بشكل أساسي على ماهية المشكلة أكثر من كونها تركز على الحل بحد ذاته.
 
بكل الأحوال تستخدم اللغات المنطقية تكتيك السسلة الخلفية لعملية الاستنتاج (backward reasoning) يتم التعامل مع البرنامج على انه تساؤل يجب الاجابة عليه والبحث عن اجابته.
object-oriented procedural
 
method function
 
object module
 
message function call
 
attribute variable
 
== المقارنة مع اللغات المنطقية Logic programming ==
في لغات البرمجة المنطقية البرنامج هو عبارة عن مجموعة من قضايا أو حقائق منطقية وقواعد دلالية ,العمليات الحسابية تتم محاولة إيجاد برهان النظرية. من وجهة النظر هذه فإن لغات البرمجة المنطقية هي لغات declarative تصريحية تركز بشكل أساسي على ماهية المشكلة أكثر من كونها تركز على الحل بحد ذاته.
 
بكل الأحوال تستخدم اللغات المنطقية تكتيك السسلة الخلفية لعملية الاستنتاج backward reasoning يتم التعامل مع البرنامج على انه تساؤل يجب الاجابة عليه والبحث عن اجابته.
 
تعتمد اللغات المنطقية على قوانين هورن الممثلة بالشكل التالي :