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

من ويكيبيديا، الموسوعة الحرة
[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
JarBot (نقاش | مساهمات)
بوت:إضافة مصدر (1.1)، إزالة وسم مصدر
JarBot (نقاش | مساهمات)
ط بوت:الإبلاغ عن رابط معطوب أو مؤرشف V4.2
سطر 1: سطر 1:
'''البرمجة الوظيفية''' هي [[البرمجة]] التي تتعامل مع الحسابات كحل [[الدوال الرياضية]] باتباع قواعد وقوانين رياضية.<ref>{{مرجع ويب| مسار = https://id.loc.gov/authorities/sh87007844 | عنوان = معلومات عن برمجة وظيفية على موقع id.loc.gov | ناشر = id.loc.gov}}</ref><ref>{{مرجع ويب| مسار = http://psh.techlib.cz/skos/PSH6639 | عنوان = معلومات عن برمجة وظيفية على موقع psh.techlib.cz | ناشر = psh.techlib.cz}}</ref><ref>{{مرجع ويب| مسار = https://catalogue.bnf.fr/ark:/12148/cb121910539 | عنوان = معلومات عن برمجة وظيفية على موقع catalogue.bnf.fr | ناشر = catalogue.bnf.fr}}</ref> الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة.هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات وحلها.
'''البرمجة الوظيفية''' هي [[البرمجة]] التي تتعامل مع الحسابات كحل [[الدوال الرياضية]] باتباع قواعد وقوانين رياضية.<ref>{{مرجع ويب| مسار = https://id.loc.gov/authorities/sh87007844 | عنوان = معلومات عن برمجة وظيفية على موقع id.loc.gov | ناشر = id.loc.gov| مسار أرشيف = https://web.archive.org/web/20100528113813/http://id.loc.gov/authorities/sh87007844 | تاريخ أرشيف = 28 مايو 2010 }}</ref><ref>{{مرجع ويب| مسار = http://psh.techlib.cz/skos/PSH6639 | عنوان = معلومات عن برمجة وظيفية على موقع psh.techlib.cz | ناشر = psh.techlib.cz}}</ref><ref>{{مرجع ويب| مسار = https://catalogue.bnf.fr/ark:/12148/cb121910539 | عنوان = معلومات عن برمجة وظيفية على موقع catalogue.bnf.fr | ناشر = catalogue.bnf.fr}}</ref> الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة.هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات وحلها.


== اللغات الوظيفية ==
== اللغات الوظيفية ==

نسخة 20:58، 11 سبتمبر 2019

البرمجة الوظيفية هي البرمجة التي تتعامل مع الحسابات كحل الدوال الرياضية باتباع قواعد وقوانين رياضية.[1][2][3] الهدف من البرمجة الوظيفية محاكاة طريقة حل الدوال الرياضية بأكبر درجة ممكنة.هذا الهدف هو ماجعل البرمجة الوظيفية تختلف تمامًا عن البرمجة باستخدام لغات الأوامر في طريقة تعاملها مع المشكلات وحلها.

اللغات الوظيفية

في اللغات الوظيفية البحتة لا يوجد أي استخدام للمتغيرات أو جمل المساواة مما يعطي حرية أكبر للمبرمج بحيث لايهتم للأماكن المحجوزة لبرنامجه في الذاكرة.كذلك يتم التحكم في مسار تنفيذ البرنامج باستخدام الدوال الرياضية والجمل الشرطية والاستدعاء الذاتي بدلاً من تنفيذه بطريقة متسلسلة وباستخدام التكرار (iterative repetition) كما هو الحال مع لغات الأوامر.

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

بالرغم من أفضلية اللغات الوظيفية البحتة على تلك المستخدمة كلغات أوامر إلا أن ضعف تنفيذها على الحاسبات المبنية على نموذج فون نيومان (von Neumann) حد من استخدامها وانتشارها.

أشهر هذه اللغات وأقدمها هي ليسب و منها أيضا هاسكل وسكيم (لغة برمجة) وML ولغات أخرى كثيرة ومتعددة

مراجع

  1. ^ "معلومات عن برمجة وظيفية على موقع id.loc.gov". id.loc.gov. مؤرشف من الأصل في 2010-05-28.
  2. ^ "معلومات عن برمجة وظيفية على موقع psh.techlib.cz". psh.techlib.cz.
  3. ^ "معلومات عن برمجة وظيفية على موقع catalogue.bnf.fr". catalogue.bnf.fr.
  • concepts of programming languages By Robert W.Sebesta