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

[مراجعة غير مفحوصة][مراجعة غير مفحوصة]
تم حذف المحتوى تمت إضافة المحتوى
CipherBot (نقاش | مساهمات)
روبوت: قوالب الصيانة؛ - {{يتيمة}}; تغييرات تجميلية
CipherBot (نقاش | مساهمات)
ط تدقيق إملائي وتنسيق
سطر 1:
البرمجة الأمرية
في [[علم الحاسوب]] ، تشير '''البرمجة الأمرية''' إلى [[نمط برمجة]] يصف عملية الحوسبة من حيث العبارات التي تغير حالة البرنامج. وإلى حد كبير، بالطريقة ذاتها التي تعبّر صيغة الأمر في اللغات الطبيعية[[لغة طبيعية]] عن الأوامر المراد تنفيذها، تحدد البرامج الأمرية تسلسلاتٍ من الأوامر للحاسوب لتنفيذها.
ويُستخدم هذا المصطلح على عكس البرمجة التصريحية، التي تعبّر عما ينبغي للبرنامج إنجازه دون وصف كيفية ذلك من حيث تسلسلات الإجراءات المطلوب اتخاذها. وتعتبر [[برمجة وظيفية]] و[[برمجة منطقية]] أمثلة لنهج أكثر تصريحية.
==البرمجة الأمرية والإجرائية والتصريحية==
سطر 7:
والبرمجة التصريحية عبارة عن أسلوب برمجة غير أمري تصف فيه البرامج نتائج البرنامج، دون إدراج الأمر صراحةً أو الخطوات التي يتعين القيام بها لتحقيق النتائج. وتتسم لغات البرمجة الوظيفية و[[برمجة منطقية]] بأسلوب البرمجة التصريحية.
وفي اللغة الوظيفية الصرفة مثل Haskell، تكون كل الوظائف بدون أضرار، ولا تمثل تغييرات الحالة إلا وظائف تقوم بتحويل الحالة. ورغم أن اللغات الوظيفية الصرفة ليست أمرية، إلا أنها تيسر في الغالب من وصف تأثير إحدى الوظائف كسلسة من الخطوات. وثمة لغات وظيفية أخرى مثل Lisp وOCaml وErlang[[إرلانج]] تدعم مزيجًا من البرمجة الإجرائية والوظيفية.
وفي لغات البرمجة المنطقية، تتكون البرامج من عبارات منطقية، ويقوم البرنامج بالتنفيذ عن طريق البحث عن براهين للعبارات. وكما في لغات البرمجة الوظيفية، ثمة بعض لغات البرمجة المنطقية مثل Prolog و[[لغة استعلام]] قواعد البيانات مثل SQL [[إس كيو إل]] ، في حيث تكون تصريحية من حيث المبدأ، تدعم أيضًا نمط البرمجة الإجرائي.
وقد كانت العديد من لغات البرمجة الأمرية (مثل Fortran [[فورتران]] وBASIC [[بيسيك]] وC[[سي (لغة برمجة)]]) عمليات تجريد للغة التجميع.
==نظرة عامة==
سطر 13:
وتؤدي عبارات التخصيص، في النمط الأمري، وظيفة على المعلومات الموجودة في الذاكرة وتقوم بحفظ النتائج في الذاكرة لاستخدامها لاحقًا. وبالإضافة لذلك، تسمح اللغات الأمرية عالية المستوى بتقييم التعبيرات المعقدة، التي قد تتألف من مجموعة من العمليات الحسابية [[حسابيات]] وتقييمات الدوال وتحويل قيم النتائج إلى الذاكرة. ويسمح ربط العبارات (كما في while loops وdo while loops وfor loops) بتنفيذ تسلسل من العبارات مرات عديدة. ويمكن للحلقات إما تنفيذ العبارات التي تحتوي عليها لعدد محدد من المرات، أو يمكنها تنفيذها بشكل متكرر إلى أن يحدث تغير في بعض الحالات. وتسمح العبارات المتفرعة المشروطة بإنجاز تسلسل من العبارات ليتم تنفيذه فحسب إذا تم استيفاء بعض الشروط. وخلاف ذلك، يتم تخطي العبارات ويستمر تسلسل التنفيذ من العبارات التي تليها. وتسمح العبارات المتفرعة غير المشروطة بنقل تسلسل التنفيذ إلى جزء معين من البرنامج. ويتضمن ذلك القفزة (تُسمى "goto" في عدة لغات) وswitch والبرنامج الفرعي أو الإجراء، طلب (والذي عادة ما يعود للعبارة التالية بعد الطلب).
==هيكل الكتلة==
المادة الرئيسية: )برمجة) الكتلة
في أوائل تطوير لغات البرمجة عالية المستوى، أتاح تقديم الكتلة بناء البرامج حيث يمكن معالجة مجموعة من العبارات والتصريحات كما لو كانت عبارة واحدة. وقد أتاح ذلك، إلى جانب تقديم الوظائف الفرعية، التعبير عن الهياكل المعقدة من خلال تحلل هرمي إلى هياكل إجرائية أصغر.
==الخلفية التاريخية==
سطر 33:
* إخفاء المعلومات (التغليف)
* المكتبة (حوسبة)
* قائمة خصائص جودة النظام
* القصاصات (برمجة)
* البرمجة التركيبية
سطر 48:
 
{{DEFAULTSORT:Imperative Programming}}
 
[[تصنيف:أنماط برمجة]]
[[تصنيف:أنماط برمجة]]