استبعاد التحقق من الحدود
في علوم الحاسوب ، يُعدّ حذف التحقق من الحدود تحسينًا للمترجمات البرمجية، وهو مفيد في لغات البرمجة أو أنظمة التشغيل التي تفرض التحقق من الحدود ، أي فحص كل عنصر في مصفوفة للتأكد من أنه يقع ضمن النطاق الصحيح للفهارس. [ 1 ] يهدف هذا التحسين إلى تحديد عمليات الفهرسة التي لا تحتاج إلى التحقق أثناء التشغيل ، وحذف تلك العمليات.
أحد الأمثلة الشائعة هو الوصول إلى عنصر في مصفوفة، وتعديله، ثم تخزين القيمة المعدلة في نفس المصفوفة وفي نفس الموقع. عادةً، ينتج عن هذا المثال فحص حدود عند قراءة العنصر من المصفوفة، وفحص حدود ثانٍ عند تخزين العنصر المعدل باستخدام نفس فهرس المصفوفة. يمكن لتقنية حذف فحص الحدود أن تلغي الفحص الثاني إذا استطاع المترجم أو بيئة التشغيل تحديد أن حجم المصفوفة أو فهرسها لا يمكن أن يتغير بين عمليتي المصفوفة. مثال آخر يحدث عندما يقوم المبرمج بتكرار عناصر المصفوفة، ويضمن شرط التكرار أن يكون الفهرس ضمن حدود المصفوفة. قد يصعب اكتشاف أن الفحص اليدوي الذي يجريه المبرمج يجعل الفحص التلقائي غير ضروري. ومع ذلك، قد يظل بإمكان المترجم أو بيئة التشغيل إجراء حذف فحص الحدود بشكل صحيح في هذه الحالة.
التطبيقات
في اللغات المترجمة أصلاً
إحدى تقنيات التخلص من التحقق من حدود المصفوفة هي استخدام تمثيل ثابت مُحدد النوع لتعيين قيمة واحدة ، وإنشاء نوع جديد لكل مصفوفة يُمثل فهرسًا آمنًا لتلك المصفوفة تحديدًا. يؤدي الاستخدام الأول لقيمة ما كفهرس للمصفوفة إلى تحويل نوع في وقت التشغيل (وإجراء التحقق المناسب)، ولكن يمكن استخدام قيمة الفهرس الآمن لاحقًا دون تحويل نوع، دون المساس بصحة أو سلامة البرنامج.
في اللغات التي يتم تجميعها بتقنية JIT
غالبًا ما تتحقق لغات البرمجة التي تُترجم في وقت التشغيل، مثل جافا وسي شارب، من الفهارس أثناء التشغيل قبل الوصول إلى المصفوفات . بعض مُترجمات وقت التشغيل، مثل هوت سبوت، قادرة على إلغاء بعض هذه الفحوصات إذا اكتشفت أن الفهرس يقع دائمًا ضمن النطاق الصحيح، أو إذا كان فحص سابق سيؤدي بالفعل إلى ظهور استثناء. [ 2 ] [ 3 ]
مراجع
- ↑ ستيفن موشنيك؛ موشنيك وشركاؤه (15 أغسطس 1997). تصميم وتنفيذ المترجمات المتقدمة . مورغان كوفمان. ISBN 978-1-55860-320-2.
حذف التحقق من الحدود.
- ↑ كاواغوتشي، كوهسوكي (30 مارس 2008). "نظرة معمقة على كود التجميع من جافا" . مؤرشف من الأصل في 2 أبريل 2008. تم الاطلاع عليه في 2 أبريل 2008 .
- ↑ "توليد سريع وفعال للتعليمات البرمجية في مُترجم جافا الفوري" (ملف PDF) . شركة إنتل . تم الاطلاع عليه بتاريخ 22-06-2007 .
روابط خارجية
- W. Amme, J. von Ronne, M. Franz. استخدام تمثيل SafeTSA لتعزيز أداء آلة جافا الافتراضية الحالية (2002).
- أخطاء الحاسوب
- تحسينات المُترجم
