ScholarGate
المساعد

نماذج البرمجة

نماذج البرمجة هي الأساليب الأساسية التي تنظم كيفية التعبير عن الحوسبة، بدءًا من تغيير الحالة الأمرية (imperative state mutation) وصولًا إلى النماذج الوظيفية والمنطقية والتصريحية.

اعثر على موضوع باستخدام PaperMindقريبًاFind papers & topics
Tools & resources
تنزيل الشرائح
Learn & explore
فيديوقريبًا

Definition

نموذج البرمجة هو مجموعة متماسكة من المفاهيم ومبادئ الهيكلة لتنظيم الحوسبة داخل اللغة، ويحدد الوحدات الأساسية للبرنامج (العبارات، التعبيرات، الكائنات، العلاقات) وكيفية تركيبها.

Scope

يغطي هذا المجال النماذج الرئيسية للغات البرمجة والنماذج الحسابية التي تقوم عليها: البرمجة الأمرية والشيئية المبنية على الحالة القابلة للتغيير وتمرير الرسائل؛ البرمجة الوظيفية المبنية على تقييم التعبيرات والدوال عالية الرتبة؛ البرمجة المنطقية والمقيدة المبنية على العلاقات والبحث؛ والبرمجة الوصفية (metaprogramming)، حيث تعالج البرامج البرامج. ويتناول هذا المجال كيفية تشكيل النماذج لتصميم اللغة، والمقايضات التي تجسدها، وكيف تجمع اللغات الحديثة متعددة النماذج بينها.

Sub-topics

Core questions

  • ما الذي يميز نموذجًا عن آخر، وهل هذه الفروق حادة أم مجرد مسائل تركيز؟
  • كيف تؤثر النماذج على صحة البرنامج، نمطيته، والاستدلال فيه؟
  • هل يمكن توحيد الأنماط الأمرية والتصريحية، وما الذي يُكتسب أو يُفقد بخلطهما؟
  • كيف يؤثر النموذج الحسابي الأساسي (آلة فون نيومان، حساب التفاضل والتكامل اللامدا، الحل) على النموذج؟

Key theories

البرمجة الوظيفية كجبر للبرامج
جادل باكوس بأن البرمجة الوظيفية القائمة على المجمعات (combinator-based) تحرر اللغات من عنق الزجاجة الخاص بـ فون نيومان من خلال تزويد البرامج بجبر من القوانين المعادلة للاستدلال والتحويل.
الخوارزمية = المنطق + التحكم
فصل كوالسكي بين المواصفات المنطقية للمشكلة واستراتيجية التحكم المستخدمة لحلها، وهو ما يؤسس للنموذج التصريحي/المنطقي ويوضح ما يميزه عن الكود الإجرائي.
إطار عمل اللغة الأساسية متعددة النماذج
يقدم فان روي وهاريدي النماذج كامتدادات تدريجية للغة أساسية صغيرة، موضحين كيف يمكن إضافة أو إزالة مفاهيم مثل الحالة، التزامن، والكسل (laziness) لاستعادة كل نموذج.

Clinical relevance

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

History

تنحدر البرمجة الأمرية من بنية فون نيومان ذات البرنامج المخزن واللغات المبكرة مثل فورتران وألغول. قدمت لغة ليسب (1958) أفكارًا وظيفية متجذرة في حساب التفاضل والتكامل اللامدا (lambda calculus). شهدت السبعينيات ظهور البرمجة المنطقية (برولوغ) وصعود البرمجة الهيكلية ثم الشيئية (سيمولا، سمولتوك). بلورت محاضرة باكوس لجائزة تورينغ عام 1977 النقد الوظيفي للنمط الأمري، وأنتجت العقود اللاحقة لغات متعددة النماذج بشكل متزايد.

Debates

الأمرية مقابل التصريحية كمبدأ تنظيمي أساسي
يوازن نقاش طويل الأمد بين المباشرة والتحكم في الأداء للكود الأمري مقابل مزايا الاستدلال والتركيبية للأنماط التصريحية والوظيفية؛ وتحل معظم اللغات الحديثة هذه المسألة من خلال دعم كليهما.

Key figures

  • John Backus
  • Robert Kowalski
  • Peter Van Roy
  • Harold Abelson
  • Gerald Jay Sussman

Related topics

Seminal works

  • backus1978
  • kowalski1979
  • vanroy2004
  • abelson1996

Frequently asked questions

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

Methods for this concept

Related concepts