إعادة التجميع الديناميكي

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

الاستخدامات

تُستخدم معظم برامج إعادة الترجمة الديناميكية لتحويل شيفرة الآلة بين البنى المعمارية المختلفة أثناء التشغيل. تُعد هذه مهمة ضرورية في محاكاة منصات الألعاب القديمة. في حالات أخرى، قد يستخدم النظام إعادة الترجمة الديناميكية كجزء من استراتيجية تحسين تكيفية لتنفيذ تمثيل برنامج قابل للنقل، مثل شيفرة بايت Java أو .NET Common Language Runtime . كما تستخدم أدوات تصحيح الأخطاء عالية السرعة إعادة الترجمة الديناميكية لتقليل المساحة الإضافية التي تستهلكها معظم تقنيات إلغاء التحسين ، بالإضافة إلى ميزات أخرى مثل ترحيل الخيوط الديناميكي .

المهام

المهام الرئيسية التي يجب على المُترجم الديناميكي القيام بها هي:

  • قراءة رمز الآلة من المنصة المصدرية
  • إصدار رمز الآلة للمنصة المستهدفة

قد يقوم برنامج إعادة الترجمة الديناميكي أيضًا ببعض المهام المساعدة:

  • إدارة ذاكرة تخزين مؤقتة للتعليمات البرمجية المعاد تجميعها
  • تحديث عدد الدورات المنقضية على المنصات المزودة بسجلات عدد الدورات
  • إدارة فحص المقاطعات
  • توفير واجهة لأجهزة الدعم الافتراضية، على سبيل المثال وحدة معالجة الرسومات (GPU).
  • تحسين هياكل التعليمات البرمجية ذات المستوى الأعلى لتشغيلها بكفاءة على الأجهزة المستهدفة (انظر أدناه)

التطبيقات

المحاكيات

  • PCSX2 ، [ 5 ] وهو محاكي بلاي ستيشن 2 ، يحتوي على برنامج إعادة تجميع يسمى "microVU"، وهو خليفة "SuperVU".
  • GCemu، [ 6 ] محاكي GameCube .
  • GEM، [ 7 ] محاكي Game Boy لجهاز MSX يستخدم مُعيد تجميع ديناميكي مُحسِّن.
  • يحتوي برنامج DeSmuME، [ 8 ] وهو محاكي لجهاز Nintendo DS ، على خيار dynarec.
  • يحتوي برنامج Soywiz's Psp، [ 9 ] وهو محاكي لجهاز PlayStation Portable ، على خيار dynarec.
  • Mupen64Plus ، وهو محاكي متعدد المنصات لجهاز نينتندو 64. [ 10 ]
  • يابوز، محاكي سيجا ساترن متعدد المنصات . [ 11 ]
  • يستخدم برنامج PPSSPP ، وهو محاكي متعدد المنصات لجهاز PlayStation Portable ، مُجمِّعًا ديناميكيًا بتقنية JIT بشكل افتراضي. [ 12 ]
  • PCem هو برنامج محاكاة لمنصات الحواسيب القديمة، ويمكن استخدامه على نظامي التشغيل ويندوز ولينكس. يستخدم البرنامج مُعيد الترجمة لتحويل استدعاءات وحدة المعالجة المركزية القديمة إلى تعليمات وحدة المعالجة المركزية الحديثة، مما يُحسّن سرعة المحاكاة بشكل عام.
  • 86Box هو برنامج مشتق من PCem يهدف إلى محاكاة أكثر دقة. ويستخدم برنامج إعادة التجميع لنفس الغرض.

انظر أيضاً

مراجع

  1. «تقرير فني من مختبرات HP حول Dynamo» . مؤرشف من الأصل بتاريخ 7 يوليو 2008. تم الاطلاع عليه بتاريخ 22 يناير 2006 .
  2. "منصة أدوات القياس الديناميكي DynamoRIO" . مؤرشفة من الأصل بتاريخ 2019-09-05 . تم الاطلاع عليها بتاريخ 2016-04-12 .
  3. "DynamoRIO" . GitHub . 2021-10-15.
  4. بول، ماتياس ر.؛ فرينك، أكسل سي. (1997-10-13) [نُشر لأول مرة عام 1991]، FreeKEYB - برنامج تشغيل لوحة المفاتيح ووحدة التحكم DOS المحسّن (دليل المستخدم) ( الإصدار 6.5). 
  5. "PCSX 2" . مؤرشف من الأصل بتاريخ 29-10-2005 . تم الاطلاع عليه بتاريخ 15-04-2009 .
  6. petebernert (2015-10-03). "GCemu" . SourceForge .
  7. "محاكي جيم بوي لجهاز MSX | الصورة الجديدة" . GEM . تم الاسترجاع في 12 يناير 2014 .
  8. "DeSmuME v0.9.9" .
  9. ^ منشور بواسطة كارلوس باليستيروس فيلاسكو (28 يوليو 2013). "محاكي Soywiz's PSP: الإصدار : Soywiz's Psp Emulator 2013-07-28 (r525)" . Pspemu.soywiz.com . تم الاسترجاع 2014/01/12 . 
  10. Mupen64Plus
  11. "SH2" .
  12. "PPSSPP - محاكي PSP لأنظمة Android وWindows وLinux وiOS وMacOSX" . ppsspp.org . تم الاطلاع عليه بتاريخ 17 نوفمبر 2021 .