جدول المحتويات:
التعريف - ماذا تعني الشفافية المرجعية؟
الشفافية المرجعية هي خاصية خاصة بجزء معين من البرنامج أو لغة البرمجة ، خاصة لغات البرمجة الوظيفية مثل Haskell و R. ويقال إن التعبير في البرنامج يكون شفافًا مرجعيًا إذا كان يمكن استبداله بقيمته والسلوك الناتج هو نفسه كما كان من قبل التغيير. هذا يعني أن سلوك البرنامج لا يتغير سواء كان الإدخال المستخدم عبارة عن مرجع أو قيمة فعلية يشير إليها المرجع.
تيكوبيديا تشرح الشفافية المرجعية
للشفافية المرجعية جذورها في الفلسفة التحليلية ، والتي هي فرع من الفلسفة التي تدرس بنيات اللغة الطبيعية والحجج والبيانات القائمة على أساليب الرياضيات والمنطق وليس لها علاقة تذكر بالبرمجة ، على الرغم من اعتمادها من قبل علماء الكمبيوتر.
المفهوم بسيط ، يمكن استخدام "المرجع" ، وهو الشيء الذي يشير إليه التعبير ، ليحل محل "المرجع" دون تغيير معنى التعبير. على سبيل المثال ، عبارة "والد لوقا هو رجل شرير" ، يشير "والد لوقا" إلى "دارث فيدر" في فيلم حرب النجوم. لذا فإن العبارة شفافة مرجعية حيث يمكن استبدال "والد لوك" في أي وقت بعبارة "دارث فيدر" ولن يتغير البيان في المعنى. ومع ذلك ، في عبارة "لم يعرف الجمهور حتى" الإضرابات الإمبراطورية "أن والد لوقا هو في الواقع دارث فيدر" ليس تعبيرًا شفافًا مرجعيًا لأنه إذا تم استبدال "والد لوقا" بـ "دارث فيدر" يصبح التعبير " لم يعرف الجمهور حتى "الإضراب الإمبراطوري" أن دارث فيدر هو في الواقع دارث فيدر ، "الذي له معنى مختلف تمامًا.
فيما يتعلق بالبرمجة ، فإن المفهوم هو نفسه للوهلة الأولى ، لكن العديد من الفلاسفة لا يوافقون على أن المفهوم يتم تنفيذه أو يتم تنفيذه جيدًا في لغات البرمجة. ولكن في البرمجة العامة ، هذا يعني ببساطة أنه يمكن استبدال التعبير بقيمته الناتجة دون التأثير على سلوك البرنامج. على سبيل المثال ، تقوم الدالة plusOne (x) ببساطة بإضافة واحدة إلى أي قيمة x ، لذلك إذا علمنا أن x = 5 يمكننا استبدال الوظيفة بأمان بالقيمة 6 في تعبير ينتج عنه نفس السلوك عند استخدام plusOne (خ). ولكن إذا كان هناك متغير خارجي داخل التعبير يتم التحكم فيه خارجيًا ، قل في الدالة plusY (x) حيث يتم التحكم في Y داخل الوظيفة ، فقد لا يكون السلوك الناتج هو نفسه - في هذه الحالة ، هذا ليس شفافًا مرجعيًا التعبير.