الفرق بين البرمجة الوظيفية والبرمجة الحتمية

جدول المحتويات:

الفرق بين البرمجة الوظيفية والبرمجة الحتمية
الفرق بين البرمجة الوظيفية والبرمجة الحتمية

فيديو: الفرق بين البرمجة الوظيفية والبرمجة الحتمية

فيديو: الفرق بين البرمجة الوظيفية والبرمجة الحتمية
فيديو: الفرق بين البرمجة الحتمية الأمرية و البرمجة الوظيفية. imperative vs functional programming 2024, شهر نوفمبر
Anonim

الفرق الرئيسي - البرمجة الوظيفية مقابل البرمجة الحتمية

الاختلاف الرئيسي بين البرمجة الوظيفية والبرمجة الحتمية هو أن البرمجة الوظيفية تعتبر الحسابات كوظائف رياضية وتتجنب تغيير الحالة والبيانات القابلة للتغيير بينما تستخدم البرمجة الإلزامية العبارات التي تغير حالة البرامج.

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

ما هي البرمجة الوظيفية؟

تعتمد البرمجة الوظيفية على الرياضيات. المبدأ الأساسي وراء البرمجة الوظيفية هو أن جميع الحسابات تعتبر مزيجًا من الوظائف الرياضية المنفصلة. تقوم دالة رياضية بتعيين المدخلات إلى المخرجات. افترض أن هناك وظيفة تسمى f (x)=xx. يتم تعيين قيمة x 1 للإخراج 1. يتم تعيين قيمة x 2 للإخراج 4.تم تعيين قيمة x 3 للإخراج 9 وما إلى ذلك.

الفرق بين البرمجة الوظيفية والبرمجة الحتمية
الفرق بين البرمجة الوظيفية والبرمجة الحتمية

الشكل 01: مثال على لغة البرمجة الوظيفية - هاسكل

في البرمجة الوظيفية ، يتم النظر في الأنماط. تستخدم لغات البرمجة الوظيفية Haskell الطريقة التالية للعثور على مجموع الأرقام.

تحتوي دالة الجمع على قيم عددية ، وستكون النتيجة أيضًا عددًا صحيحًا. يمكن كتابته كمجموع: [int] -> int. يمكن إجراء التجميع باتباع الأنماط أدناه.

sum [n]=n ، مجموع رقم واحد هو الرقم نفسه.

إذا كانت هناك قائمة بالأرقام ، فيمكن كتابتها على النحو التالي. يمثل n الرقم الأول ، ويمثل ns الأرقام الأخرى

sum (n، ns)=n + sum ns.

يمكن تطبيق الأنماط أعلاه للعثور على مجموع ثلاثة أرقام وهي 3 ، 4 ، 5.

3 + مجموع [4، 5]

3 + (4 + مجموع [5])

3 + 4 + 5=12

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

ما هي البرمجة الحتمية؟

البرمجة الحتمية هي نموذج برمجة يستخدم العبارات التي تغير حالة البرنامج. يركز على وصف كيفية عمل البرنامج. لغات البرمجة مثل Java و C و Cهي لغات برمجة حتمية.يوفر إجراء خطوة بخطوة حول ما يجب القيام به. تحتوي لغات البرمجة الحتمية على تراكيب مثل if، else، while، for loops والفئات والكائنات والوظائف.

الفرق الرئيسي بين البرمجة الوظيفية والبرمجة الحتمية
الفرق الرئيسي بين البرمجة الوظيفية والبرمجة الحتمية

الشكل 02: مثال على لغة البرمجة الحتمية - Java

يمكن العثور على مجموع عشرة أرقام في Java على النحو التالي. في كل تكرار ، يتم إضافة قيمة i إلى المجموع وتعيينها إلى متغير المجموع. في كل تكرار ، تستمر قيمة المجموع في الإضافة إلى المجموع المحسوب مسبقًا.

int sum=0 ؛

لـ (int i=0 ؛ i<=10 ؛ i ++) {

sum=sum + i ؛

}

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

ما هو التشابه بين البرمجة الوظيفية والبرمجة الحتمية؟

كل من البرمجة الوظيفية و البرمجة الحتمية هي نماذج برمجة

ما هو الفرق بين البرمجة الوظيفية والبرمجة الحتمية؟

البرمجة الوظيفية مقابل البرمجة الحتمية

البرمجة الوظيفية هي نموذج برمجة يعتبر الحساب كتقييم للوظائف الرياضية ويتجنب تغيير الحالة والبيانات القابلة للتغيير. البرمجة الحتمية هي نموذج برمجة يستخدم العبارات التي تغير حالة البرنامج.
الهياكل
تحتوي البرمجة الوظيفية على استدعاءات وظيفية ووظائف ذات ترتيب أعلى. البرمجة الحتمية تحتوي على if، else، while، for الحلقات والوظائف والفئات والكائنات.
لغات البرمجة
Scala و Haskell و Lisp هي لغات برمجة وظيفية. C ، C ++ ، Java هي لغات برمجة حتمية.
التركيز
البرمجة الوظيفية تركز على النتيجة النهائية البرمجة الحتمية تركز على وصف كيفية عمل البرنامج.
البساطة
البرمجة الوظيفية صعبة. البرمجة الحتمية أسهل.

ملخص - البرمجة الوظيفية مقابل البرمجة الضرورية

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

موصى به: