مرجع
آخر الزيارات

برمجة أمرية

1٬136 كلمة•0 مشاهدة•🗒️ منذ 22 ساعة
باختصار: البرمجة الأمرية في علم الحاسوب، تشير البرمجة الأمرية إلى نمط برمجة يصف عملية الحوسبة من حيث العبارات التي تغير حالة البرنامج. في هذه المقالة 4 أقسام: «الخلفية التاريخية»، «نظرة عامة» و«البرمجة الأمرية والإجرائية والتصريحية» وغيرها.
المحتويات
  1. الخلفية التاريخية
  2. نظرة عامة
  3. البرمجة الأمرية والإجرائية والتصريحية
  4. المادة الرئيسية:)برمجة) الكتلة

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

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

الخلفية التاريخية

من جانب آخر، ويشمل تصنيف: لغات البرمجة الإجرائية لغات برمجة أمرية إضافية.

كذلك، وشهد عام 1980 نموًا سريعًا في الاهتمام بالبرمجة كائنية التوجه. كانت تلك اللغات أمرية في الأسلوب، لكنها أضافت مزايا لدعم الكائنات. كما شهد العقدان الآخران من القرن العشرين تطورًا لعدد كبير من لغات البرمجة تلك. لغة البرمجة Smalltalk-80، صاحب فكرتها الأصلية هو آلان كاي في عام 1969، وتم إصدارها في سنة 1980 بواسطة مركز أبحاث زيروكس بالو ألتو. واستخلاصًا من المفاهيم في لغة برمجة كائنية التوجه أخرى— Simula (التي تعتبر لغة البرمجة كائنية التوجه الأولى في العالم، والتي جرى تطويرها في أواخر الستينيات) —قام بيارن ستوستروب بتصميم لغة البرمجة C++، وهي من لغات البرمجة كائنية التوجه التي تعتمد على لغة البرمجة C. وقد تم أول تطبيق للغة البرمجة C++سي++ (لغة برمجة) في عام 1985. وفي أواخر الثمانينيات والتسعينيات، كانت اللغات الأمرية الملحوظة التي تعتمد علي المفاهيم كائنية التوجه هي لغة Perl التي صدرت عام 1987 بواسطة لاري وول، ولغة Python التي صدرت عام 1990 بواسطة جايدو فان روسم ولغة PHP بي إتش بي التي صدرت عام 1994 بواسطة راسموس ليدروف؛ وصدرت للغة Java لأول مرة عام 1994 بواسطة شركةصن ميكروسيستمز وصدرت لغة Rubyروبي (لغة برمجة) عام 1995 بواسطة يوكيهيرو «ماتز» ماتسوموتو. ويعد برنامج NET platform (2002)، من شركة مايكروسوفت، في جوهره برنامجًا أمريًا مثلما هي لغاته الأساسية المستهدفة، VB.NET وC#.

علاوةً على ذلك، كانت أولى لغات الأوامر هي لغات الآلة للحواسب الأصلية. وفي هذه اللغات، كانت التعليمات بسيطة للغاية، مما جعل تنفيذ المكونات المادية للحاسوب أسهل، لكنها أعاقت إنشاء برامج معقدة. وكانت لغة FORTRAN فورتران - التي طورها جون باكوس في شركة آي بي إم بدءًا من عام 1954 - أول لغة برمجة رئيسية للتغلب على العقبات التي شكلتها لغة الآلة في إنشاء برامج معقدة. كما كانت FORTRAN لغة مترجمة أتاحت متغيرات معينة ومصطلحات معقدة وبرامج فرعية والكثير من الخصائص الأخرى المعروفة الآن في اللغات الأمرية. وقد شهد العقدان التاليان تطورًا في عدد من لغات البرمجة الأمرية عالية المستوى الرئيسية الأخرى. وفي أواخر الخمسينيات والستينيات، تم تطوير لغة ALGOL كي تسمح بالتعبير عن الخوارزميات الرياضية بسهولة أكبر، كما قامت بوظيفة اللغة المستهدفة لنظام التشغيل لبعض الحواسب. كما مثلت كلا من لغتيّ COBOL (1960) وBASIC (1964) محاولتين لجعل البرامج اللغوية البرمجية أشبه باللغة الإنجليزية. وفي السبعينيات، تم تطوير لغة البرمجة Pascal باسكال (لغة برمجة)بواسطة نيكولاس ويرث، وقام دينيس ريتشي بإنشاء لغة البرمجة C خلال عمله في مختبرات بل. ثم توصل ويرث إلى تصميم اللغتين Modula-2 وOberon. ولتلبية احتياجات وزارة دفاع الولايات المتحدة، بدأ جون إشبيا وفريق من شركة هانيويل في تصميم لغة البرمجة Ada في عام 1978، بعد مشروع امتد لأربع سنوات لتحديد متطلبات اللغة. وقد تم نشر المواصفات لأول مرة في سنة 1983 مع تنقيحات في سنة 1995 و2005/2006.

نظرة عامة

وفي هذا السياق، يعد تنفيذ المكونات المادية لكل الحواسب على وجه التقريب تنفيذًا أمريًا؛ [الملاحظة 1] كما روعي في تصميم كل المكونات المادية للحاسوب على وجه التقريب تنفيذ لغة الآلة التي تمثل لغة الحاسوب الأصلية وتُكتب بالأسلوب الأمري. ومن هذا المنظور منخفض المستوى، تُعرف حالة البرنامج على أنها مكونات الذاكرة، والعبارات هي التعليمات الموجودة في لغة الآلة الأصلية للحاسوب. وتستعمل اللغات الأمرية من المستوى الأعلى متغيرات وعبارات أكثر تعقيدًا، لكنها لا تزل تتبع نفس النمط. وفي حين أن الوصفات والقوائم المرجعية للعمليات ليست من برامج الحاسوب، إلا أنها كذلك مفاهيم معروفة تشبه في الأسلوب البرمجة الأمرية؛ حيث تمثل كل خطوة أمرًا، وتتحدد الحالة ماديًا. ونظرًا لأن الأفكار الرئيسية للبرمجة الأمرية معروفة نظريًا ومجسدة مباشرة في المكونات المادية للحاسوب؛ لذا تكون أغلب لغات الحاسوب بالأسلوب الأمري.

هيكل الكتلة

إضافةً إلى ذلك، وتؤدي عبارات التخصيص، في النمط الأمري، وظيفة على المعلومات الموجودة في الذاكرة وتقوم بحفظ النتائج في الذاكرة لاستخدامها لاحقًا. وبالإضافة لذلك، تسمح اللغات الأمرية عالية المستوى بتقييم التعبيرات المعقدة، التي قد تتألف من مجموعة من العمليات الحسابية حسابيات وتقييمات الدوال وتحويل قيم النتائج إلى الذاكرة. ويسمح ربط العبارات (كما في while loops وdo while loops وfor loops) بتنفيذ تسلسل من العبارات مرات عديدة. ويمكن للحلقات إما تنفيذ العبارات التي تحتوي عليها لعدد محدد من المرات، أو يمكنها تنفيذها بشكل متكرر إلى أن يحدث تغير في بعض الحالات. وتسمح العبارات المتفرعة المشروطة بإنجاز تسلسل من العبارات ليتم تنفيذه فحسب إذا تم استيفاء بعض الشروط. وخلاف ذلك، يتم تخطي العبارات ويستمر تسلسل التنفيذ من العبارات التي تليها. وتسمح العبارات المتفرعة غير المشروطة بنقل تسلسل التنفيذ إلى جزء معين من البرنامج. ويتضمن ذلك القفزة (تُسمى "goto" في عدة لغات) وswitch والبرنامج الفرعي أو الإجراء، طلب (والذي عادة ما يعود للعبارة التالية بعد الطلب).

البرمجة الأمرية والإجرائية والتصريحية

علاوةً على ذلك، ويمكن اعتبار البرمجة الإجرائية خطوة نحو البرمجة التصريحية. وبمجرد النظر للأسماء، يمكن للمُبرمج في الغالب ذكر أنواع معامِلات ومردودات الإجراءات (والتعليقات ذات الصلة) وتحديد الإجراء المعين الذي يُفترض تنفيذه – دون النظر بالضرورة إلى كيفية تحقيق الإجراء لهذه النتيجة. وفي الوقت ذاته، ثمة برنامج كامل لا يزال أمريًا نظرًا لأنه «يحدد» العبارات المطلوب تنفيذها وترتيب تنفيذها إلى حد كبير.

علاوةً على ذلك، وقد كانت الكثير من لغات البرمجة الأمرية (مثل Fortran فورتران وBASIC بيسيك وCسي (لغة برمجة)) عمليات تجريد للغة التجميع.

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

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

من جانب آخر، والبرمجة التصريحية عبارة عن أسلوب برمجة غير أمري تصف فيه البرامج نتائج البرنامج، دون إدراج الأمر صراحةً أو الخطوات التي يتعين القيام بها لتحقيق النتائج. وتتسم لغات البرمجة الوظيفية وبرمجة منطقية بأسلوب البرمجة التصريحية.

كذلك، وفي اللغة الوظيفية الصرفة مثل Haskell، تكون كل الوظائف بدون أضرار، ولا تمثل تغييرات الحالة إلا وظائف تقوم بتحويل الحالة. ورغم أن اللغات الوظيفية الصرفة ليست أمرية، إلا أنها تيسر في الغالب من وصف تأثير إحدى الوظائف كسلسة من الخطوات. وثمة لغات وظيفية أخرى مثل Lisp وOCaml وErlangإرلانج تدعم مزيجًا من البرمجة الإجرائية والوظيفية.

المادة الرئيسية:)برمجة) الكتلة

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

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

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