الدليل الشامل لـ تأثير جانبي (علم الحاسوب)

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

تعد التأثيرات الجانبية أكثر الطرق شيوعًا في تفاعل البرنامج مع العالم الخارجي (الأشخاص، أنظمة الملفات، أجهزة الكمبيوتر الأخرى على الشبكات). تعتمد درجة استخدام التأثيرات الجانبية على نمط البرمجة. تشتهر البرمجة الامرية Imperative programming لاستخدامها المتكرر للآثار الجانبية.

في البرمجة الوظيفية نادرا ما تستخدم الآثار الجانبية. ويؤدي عدم وجود آثار جانبية إلى تسهيل إجراء عمليات التحقق الرسمية من البرنامج. لا تحد اللغات الوظيفية مثل Standard ML و Scheme و Scala من الآثار الجانبية، ولكن من المعتاد أن يتجنبها المبرمجون. تعبر اللغة الوظيفية Haskell عن تأثيرات جانبية مثلI/O وحسابات أخرى ذات أهمية باستخدام monadic actions.

يجب أن يكون مبرمجي لغة تجميع Assembly على دراية بالآثار الجانبية المخفية - التعليمات التي تقوم بتعديل أجزاء من حالة المعالج التي لم يتم ذكرها في instruction's mnemonic. المثال الكلاسيكي لأثر جانبي مخفي هو تعليمة حسابية تقوم بتعديل شرط الأكواد بشكل ضمني (تأثير جانبي مخفي) أثناء تعديلها بشكل صريح ل register (الأثر الصريح). أحد العوائق المحتملة لمجموعة تعليمات ذات تأثيرات جانبية مخفية هو أنه إذا كان للعديد من التعليمات تأثيرات جانبية على حالة واحدة، مثل شرط الأكواد، فإن المنطق مطلوب لتحديث تلك الحالة بشكل تسلسلي وقد يؤدي إلى ضعف الأداء. المشكلة عصيبة بشكل خاص على بعض المعالجات المصممة مع خط الانابيب (منذ عام 1990) أو مع out-of-order execution . قد يتطلب مثل هذا المعالج دوائر تحكم إضافية لاكتشاف الآثار الجانبية المخفية وتوقف خط الانابيب إذا كانت التعليمات التالية تعتمد على نتائج تلك التأثيرات.

قراءة المقال الكامل على ويكيبيديا ←