نمط برمجة

عودة للموسوعة

نمط برمجة

ساهم بشكل رئيسي في تحرير هذا الموضوع

نمط البرمجة (بالإنجليزية: Programming paradigm‏) هوأسلوب في برمجة الحاسوب (وثمة فرق بينه وبين المنهجية Methodology ، والتي هي أسلوب حل مشاكل محددة تتبع لهندسة البرمجيات). تختلف أنماط البرمجة في المفاهيم والتجريدات التي تستخدمها لتمثيل عناصر برنامج (كالكائنات والتوابع والمتحولات والقيود وغيرها) وخطوات العمل والحساب (كالتعيين وبنى التحكم والإيجاد).

نظرة إجمالية

ان لغات البرمجة يمكنها حتى تدعم الكثير من الأنماط. على سبيل المثال لا الحصر في لغة C++ اوفي باسكال غرضية التوجه Object Pascal يمكن انقد يكون البرنامج مكتوب بشكل إجرائي proceduralاوغرضي التوجه object-oriented بشكل تام , اويمكن ان يحوي عناصر من النمطين السابقين .

ان متطلبات تصميم البرمجيات والمبرمجين يقررون كيف من الممكن أن يتم استعمال عناصر الانماط .

في البرمجة غرضية التوجه , المبرمج يمكن ان يفكر بالبرنامج من منظور انه يتألف من مجموعة من الاغراض المتفاعلة فيما بينها , بينما في البرمجة الدالية functional programming البرنامج يمكن ان ينظر له على انه سلسلة من تقييمات التوابع المتتالية . عند البرمجة بالحاسب اوانظمة تملك عدة معالجات فإن نمط process-oriented يسمح للمبرمجين لينظروللتطبيقات كما انها مجوعة من العمليات المتزامنة تتصرف وفقاً لبنية المعطيات المشهجرة .

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

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

في البرمجة كائنية التوجه، ينظر المبرمج إلى البرنامج على أنه مجموعة من الكائنات التي تتفاعل مع بعضها، بينما في البرمجة الوظيفية يمكن اعتبار برنامج على أنه سلسلة من عمليات إيجاد للتوابع. وعندما تبرمج نظم حاسوبية بمعالجات عديدة، تسمح البرمجة العملياتية التوجه (process-oriented programming) للمبرمجين بالنظر إلى البرنامج على أنه مجموعة من العمليات المتزامنة التي تنفذ على مجموعة من بنى المعطيات التي يتم تشاركها بشكل منطقي.

وكما توجد مجموعات مختلفة من المنهجيات في هندسة البرمجيات، توجد مجموعات مختلفة من أنماط البرمجة. حيث صممت بعض اللغات لدعم نمط واحد (مثل Smalltalk التي تدعم البرمجة الكائنية التوجه فقط، وهاسكل التي تدعم البرمجة الوظيفية فقط)، بينما صمم بعضها الآخر لدعم عدة أنماط (مثل باسكال الكائنية، سي++، سي شارب، Visual Basic، بايثون، پيرل وغيرها).

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


أنماط البرمجة

لغة الآلة Machine Code

لغة الآلة Machine Language هي اللغة البرمجية الوحيدة التي تفهمها وحدة المعالجة المركزية cpu مباشرة بدون وسائط .وهي من لغاة البرمجة المتدنية المستوى low level programming language .تعتبر لغة الآلة من لغات البرمجة الاولية primitive فهي تمثل اخفض مستوى (من ناحية قربه من العتاديات hardware) برمجي يمكن للمبرمج التعامل معه .

إن البرامج المبرمجة وفق لغات البرمجة المترجمة compiled يتم نقل الرماز المصدري الخاص بها الى لغة الآلة بينما البرامج المبرمجة بلغات مفسرةinterpreted لا تمثل بلغة الآلة.

يفضل عدم الخلط بين لغة الآلة وبين bytecode التي تنفذ من قبل مفسر interpreter.

لقد تم اعتماد نظام الاعداد الثنائي عن غيرها من انظمة الاعداد لترميز لغة الآلة نظراً لسهولة تمثيل حالتين في الدارات الإلكترونية on,off التي تقابل 1و0

مثال على لغة الترميز الثنائي 000000 00001 00010 00110 00000 000000

لغة التجميع Assembly languages

لجعل البرمجة اسهل تم تطوير لغة التجميع assembly languages. ان لغة التجميع هي لغة برمجة من المستوى المنخفض مخصصة لبرمجة اجهزة الحاسب ,المعالجات الصغرية , المايكروكونترولر microcontrollers والدارات المتكاملة .IC integrated circuits.

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

تتميز لغة التجميع بانها تختلف وفقاً للمعالج المبرمج وفقه ففي حين نجد تعليمات لمعالج انتل 86X نجد تعليمات لمعالجات مثل Mips "لالمنشأ لأهداف تعليمية", كما نجد ان البرامج المكتوبة بلغة تدعم معالج 32 بت تختلف عن معالج 64 بت بشكل عام .

تعتبر لغة التجميع ذات مستوى منخفض ,ايضاً على الرغم من ذلك إلا انه تعتبر الجيل الثاني لانماط البرمجة .

=مثال على كود يعتمد لغة تجميع مثال على كود يعتمد لغة تجميع (من معالج Mips 3000)

         MOV AL, 61h
     Add $s1,$t2,$s2

اللغات الإجرائية Procedural Languages

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

تعتمد هذه اللغة عدة مبادىء :

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

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

اللغات غرضية التوجه object-oriented languages

ظهر فيما بعد مفهوم اللغات غرضية التوجه object-oriented languages في هذا المفهوم يفرض ان المعطيات والتوابع يجب ان تكون مغلفة وعندما نريد استعمالها يجب انقد يكون لدينا غرض من هذا العنصر كي نستعمل التوابع والمعطيات

.الطريقة الوحيدة تتيح للمستهدم الوصول الى العناصر هي عن طريق توابع الغرض العامة فقط .

لقد كانت لغات البرمجة غرضية التوجه هي تطوير للغات الإجرائية ولا تختلف اختلافاً جذرياً إلا ببعض المفاهيم كالتغليف والوراثة .... الخ


اللغات الأمرية Imperative Languages

ظهر فيما بعد اللغات الامرية imperative نمط اللغات الامرية هي نمط من انماط لغات البرمجة التي تصف الحوسبة وفق تعليمات تغير حالة البرنامج . تعبر اللغات الامرية عن الاوامر لعمل عمل محدد . كما انها تصف سلسلة من التعليمات كي يؤديها الحاسب .

يستخدم مصطلح البرمجة الامرية لوصف مصططلح مضاد للبرمجة التصريحية declarative programming الني نعبر عن ما يراد الوصول إليه من دون شرح كيفية الوصول إليه .

تعتبر اللغات المنطقية والدالية هي اشهر الامثلة للغات البرمجة التصريحية . كذلك لغة الاستعلامات SQL


اللغات المنطقية Logic Languages

ظهر نمط برمجة هونمط البرمجة المنطقية الذي يصف الحوسبة كآلة اتومات للاستنتاج وذلك وفقاً لمعطيات ومعارف متوافرة تدعى بالحقائق .

تستخدم هذه اللغات قواعد الاستلال inference لإيجاد الجواب المراد الحصول عليه .


انظر أيضا

  • قائمة بلغات البرمجة متعددة الأنماط.
  • Reduced Instruction Set Computer (RISC)
  • VLIW
  • P-code machine
  • Endianness
  • Teaching Machine Code: Microprofessor I

قراءات إضافية

  • Hennessy, John L. Computer Organization and Design. The Hardware/Software Interface. Morgan Kaufmann Publishers. ISBN . Unknown parameter |coauthors= ignored (|author= suggested) (help)
  • Tanenbaum, Andrew S. Structured Computer Organization. Prentice Hall. ISBN .
  • Brookshear, J. Glenn. Computer Science: An Overview. Addison Wesley. ISBN .


المصادر والهوامش

تاريخ النشر: 2020-06-04 09:12:58
التصنيفات: Pages with citations using unsupported parameters, لغات التجميع, لغة الآلة

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

قرعة أمم أفريقيا.. سيناريوهات مجموعات نسخة "كان 2024" وتصنيف منتخب مصر

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-10-11 09:22:31
مستوى الصحة: 41% الأهمية: 44%

أوروبا تهدد "إكس" بعقوبات .. وماسك يتمسك بالشفافية

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-10-11 09:23:12
مستوى الصحة: 30% الأهمية: 39%

اللهاث خلف التنبؤات والتنجيم والتاروت السعودية

المصدر: جريدة الوطن - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-10-11 09:24:26
مستوى الصحة: 54% الأهمية: 50%

الأرصاد: طقس اليوم مائل للحرارة نهارا.. والعظمى بالقاهرة 30 درجة

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-10-11 09:22:25
مستوى الصحة: 43% الأهمية: 37%

"ماركا"/ براهيم دياز يختار تمثيل المنتخب المغربي

المصدر: البطولة - المغرب التصنيف: رياضة
تاريخ الخبر: 2023-10-11 12:07:17
مستوى الصحة: 57% الأهمية: 60%

الصين تعتزم بيع كميات قياسية من سندات الخزانة في السوق الدولية خلال 2023

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-10-11 09:23:09
مستوى الصحة: 45% الأهمية: 45%

11 شهيدا فلسطينيا فى غارات إسرائيلية متتالية على قطاع غزة

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-10-11 09:22:27
مستوى الصحة: 40% الأهمية: 37%

"إنفاذ" : طرح 196 عقارا للبيع في مزادات علنية خلال 5 أيام

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-10-11 09:23:05
مستوى الصحة: 42% الأهمية: 50%

إندونيسيا ترغب في استضافة مونديال 2034 بالمشاركة مع 3 دول

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-10-11 09:23:15
مستوى الصحة: 32% الأهمية: 50%

القاضى الأشهر فى العالم ضيف منى الشاذلى بـ"معكم" اليوم

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-10-11 09:22:29
مستوى الصحة: 36% الأهمية: 49%

حريق ضخم بمطار فى لندن وتعليق جميع الرحلات الجوية.. فيديو

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-10-11 09:22:34
مستوى الصحة: 31% الأهمية: 35%

زلزال جديد بقوة 6.3 درجة يهز غرب أفغانستان

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-10-11 09:22:33
مستوى الصحة: 30% الأهمية: 47%

تحميل تطبيق المنصة العربية