إعادة الاستهداف
في هندسة البرمجيات ، تعتبر إعادة الاستهداف سمة من سمات أدوات تطوير البرمجيات التي تم تصميمها خصيصًا لإنشاء التعليمات البرمجية لأكثر من منصة حوسبة واحدة.
المترجمون
المُترجم القابل لإعادة التوجيه هو مُترجم مُصمم بحيث يسهل تعديله نسبيًا لتوليد شيفرة برمجية لبنى مجموعات تعليمات المعالجات المركزية المختلفة . يعود تاريخ هذه الفكرة إلى خمسينيات القرن الماضي عندما طُرحت لغة UNCOL كلغة وسيطة عالمية. يُعد مُترجم Pascal P مثالًا على مُترجمات قابلة لإعادة التوجيه من أوائل المُترجمات التي شاع استخدامها.
تُعدّ تكلفة إنتاج مُصرّف قابل لإعادة الاستهداف، يُولّد شفرة بجودة مماثلة لمُصرّف غير قابل لإعادة الاستهداف (أي مُصرّف مُصمّم لإنتاج شفرة لمعالج واحد فقط)، أعلى، لعدم إمكانية الاستفادة من تفاصيل المعالج في جميع مراحل التجميع. وتكمن ميزة المُصرّف القابل لإعادة الاستهداف في انخفاض التكلفة الإجمالية على عدة معالجات بشكل ملحوظ مقارنةً بالتكلفة الإجمالية للعديد من المُصرّفات الفردية غير القابلة لإعادة الاستهداف.
أصبحت بعض المترجمات القابلة لإعادة الاستهداف، مثل GCC ، منتشرة على نطاق واسع وتم تطويرها لدرجة أنها تتضمن الآن دعمًا للعديد من التحسينات والتفاصيل الخاصة بالأجهزة، مما يجعل جودة التعليمات البرمجية غالبًا تتجاوز جودة المترجمات غير القابلة لإعادة الاستهداف على العديد من وحدات المعالجة المركزية.
يُعدّ استخدام مُحسِّن عام مُخصَّص، متبوعًا بتحسين دقيق خاص بالمعالج، أسلوبًا شائعًا في التنفيذ. [ 1 ] يتطلب تحسين الشيفرة لبعض المعالجات عالية الأداء معرفةً تفصيليةً ودقيقةً ببنية المعالج وكيفية تنفيذ التعليمات. ما لم يستثمر المطورون الوقت الكافي لكتابة مُولِّد شيفرة مُخصَّص لبنية معينة، فإن التحسينات التي يُجريها مُصرِّف قابل لإعادة الاستهداف ستقتصر على تلك المُطبَّقة على خصائص المعالج العامة.
المترجم القابل لإعادة الاستهداف هو نوع من أنواع المترجمات المتقاطعة . غالبًا (ولكن ليس دائمًا) يكون المترجم القابل لإعادة الاستهداف قابلًا للنقل (يمكن تشغيل المترجم نفسه على العديد من وحدات المعالجة المركزية المختلفة) ومستقرًا ذاتيًا .
أمثلة على المترجمات القابلة لإعادة الاستهداف:
- مجلس التعاون الخليجي
- إقرار
- شركة ذات مسؤولية محدودة
- VBCC
- مترجم لغة C محمول
- سان دييغو كوميك كون
- LLVM
- مترجم لغة Small-C
- MPG، "مولد البرامج الدقيقة الفعال المستقل عن الآلة" [ 2 ]
- باسكال، جامعة كاليفورنيا في سان دييغو
- فري باسكال
برنامج فك التشفير
retdec ("Retargetable Decompiler") هو برنامج مفتوح المصدر لفك تجميع التعليمات البرمجية للآلة وقابل لإعادة التوجيه يعتمد على LLVM .
- لا يقتصر برنامج فك التشفير على أي بنية مستهدفة معينة، أو نظام تشغيل، أو تنسيق ملف تنفيذي:
- تنسيقات الملفات المدعومة: ELF، PE، Mach-O، COFF، AR (أرشيف)، Intel HEX، ورمز الآلة الخام.
- البنى المدعومة (حالياً 32 بت فقط): Intel x86، ARM، MIPS، PIC32، و PowerPC.
المجمّعون
في المقابل، تتميز المجمعات القابلة لإعادة الاستهداف بقدرتها على توليد ملفات كائنية بتنسيقات مختلفة، وهو أمر مفيد في نقل برامج لغة التجميع إلى أنظمة تشغيل متنوعة تعمل على نفس بنية المعالج (مثل ويندوز ولينكس على منصة x86 ). NASM هو أحد هذه المجمعات.
للمزيد من القراءة
- مُترجم لغة C قابل لإعادة الاستهداف: التصميم والتنفيذ ( ISBN) 0-8053-1670-1)
مراجع
- ↑ "ديفيدسون وفريزر؛ تصميم وتطبيق مُحسِّن فتحة الباب القابل لإعادة التوجيه؛ ToPLaS v2(2) 191-202 (أبريل 1980)" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 23 فبراير 2024. تم الاطلاع عليه بتاريخ 31 أغسطس 2009 .
- ↑ راينر لوبيرز، بيتر مارويدل. "تقنية إعادة توجيه المترجم للأنظمة المدمجة" . 2001. ( ISBN) 0-7923-7578-5) ص 63.
روابط خارجية
- موقع مُجمِّع LANCE
- موقع البنية التحتية لمترجم LLVM
- صفحة ACK (مفتوحة المصدر) على موقع SourceForge
- صفحة نيلز ويلر لمترجم لغة سي
- موقع RetDec مؤرشف بتاريخ 24 أكتوبر 2020 على موقع Wayback Machine
- المترجمون
