وظيفة صارمة
في علوم الحاسوب وبرمجة الحاسوب ، يُقال إن الدالة f صارمة إذا لم تنتهِ عند تطبيقها على تعبير غير منتهٍ. [ 1 ] الدالة الصارمة في الدلالات التفسيرية للغات البرمجة هي دالة f حيثالكيانيشير مصطلح "النهاية" إلى تعبير لا يُرجع قيمة طبيعية، إما بسبب تكراره اللانهائي أو بسبب توقفه نتيجة خطأ مثل القسمة على صفر. تُسمى الدالة غير الصارمة " غير صارمة" . أما لغة البرمجة الصارمة فهي التي تكون فيها الدوال المُعرّفة من قِبل المستخدم صارمة دائمًا.
بشكل بديهي، تتوافق الدوال غير الصارمة مع هياكل التحكم . عمليًا، الدالة الصارمة هي التي تُقيّم وسيطها دائمًا؛ أما الدالة غير الصارمة فهي التي قد لا تُقيّم بعض وسائطها. يمكن للدوال التي تحتوي على أكثر من وسيط أن تكون صارمة أو غير صارمة في كل وسيط على حدة، كما يمكن أن تكون صارمة في عدة وسائط في آن واحد.
على سبيل المثال، يمكن اعتبار if-then-elseتعبير العديد من لغات البرمجة، والذي يُسمى ?:في اللغات المستوحاة من لغة C، بمثابة دالة ذات ثلاثة مُعاملات. هذه الدالة صارمة في مُعاملها الأول، إذ يجب أن تعرف ما إذا كان مُعاملها الأول صحيحًا أم خاطئًا قبل أن تُعيد قيمة؛ لكنها غير صارمة في مُعاملها الثاني، لأن (على سبيل المثال) ، وكذلك غير صارمة في مُعاملها الثالث، لأن (على سبيل المثال) . ومع ذلك، فهي صارمة في مُعامليها الثاني والثالث معًا، لأن و .if(false,,1) = 1if(true,2,) = 2if(true,,) = if(false,,) =
في لغات البرمجة الوظيفية غير الصارمة ، يشير تحليل الصرامة إلى أي خوارزمية تُستخدم لإثبات صرامة دالة ما بالنسبة إلى واحد أو أكثر من وسائطها. ويمكن ترجمة هذه الدوال إلى اصطلاح استدعاء أكثر كفاءة ، مثل الاستدعاء بالقيمة ، دون تغيير معنى البرنامج المُضمّن.
انظر أيضاً
مراجع
- ↑ "مقدمة مبسطة إلى لغة هاسكل: الدوال" . www.haskell.org . تم الاطلاع عليه بتاريخ 23-06-2016 .
- الأساليب الرسمية
- الدلالات الدلالية
- استراتيجية التقييم
