مرحلة تحسين الكود في عملية ترجمة الكود Code Optimization

اقرأ في هذا المقال


التحسين عبارة عن تقنية لتحويل البرنامج، والتي تحاول تحسين الكود بجعله يستهلك موارد أقل، في التحسين يتم استبدال بنيات البرمجة العامة عالية المستوى بأكواد برمجة منخفضة المستوى فعالة للغاية.

مفهوم تحسين الكود

يعد تحسين الكود في مرحلة التوليف تقنية تحويل البرنامج، والتي تحاول تحسين الكود الوسيط من خلال جعله يستهلك موارد أقل أي (وحدة المعالجة المركزية، والذاكرة) بحيث ينتج عن ذلك كود الجهاز الذي يعمل بشكل أسرع. يجب أن تُحقق عملية تحسين المترجم الأهداف التالية:

  • يجب أن يكون التحسين صحيحًا، ويجب ألا يغير بأي شكل من الأشكال معنى البرنامج.
  • يجب أن يؤدي التحسين إلى زيادة سرعة البرنامج وأدائه.
  • يجب ألا تؤخر عملية التحسين عملية الترجمة الإجمالية.

متى يجب التحسين الكود

غالبًا ما يتم إجراء تحسين الكود في نهاية مرحلة التطوير؛ لأنها تقلل من إمكانية القراءة وتضيف كودً والذي يستخدم لزيادة الأداء.

لماذا يتم تحسين الكود

يعد تحسين الخوارزمية خارج نطاق مرحلة تحسين الكود، بالتالي تم تحسين البرنامج قبل عملية ترجمة الكود، ويمكن أن يتضمن تقليل حجم الكود. لذا فإن التحسين يساعد على:

  • تقليل المساحة المستهلكة وزيادة سرعة الترجمة.
  • يتطلب تحليل مجموعات البيانات يدويًا الكثير من الوقت، لذا فإننا نستخدم برامج مثل “Tableau” لتحليل البيانات. وبالمثل، فإن إجراء التحسين يدويًا أمر شاق أيضًا ومن الأفضل القيام به باستخدام مُحسِّن الكود.
  • غالبًا ما يشجع الكود الأمثل على إعادة الاستخدام.

أنواع تحسين الكود:

يمكن تصنيف عملية التحسين على نطاق واسع إلى نوعين:

1- التحسين المستقل عن الآلة

تحاول مرحلة تحسين الكود هذه تحسين الكود الوسيط للحصول على كود هدف أفضل كمخرجات. لا يتضمن جزء الكود الوسيط الذي تم تحويله هنا أي سجلات لوحدة المعالجة المركزية أو مواقع ذاكرة مطلقة.

2- التحسين المعتمد على الآلة

يتم إجراء التحسين المعتمد على الآلة بعد إنشاء الكود الهدف وعندما يتم تحويل الكود وفقًا لبنية الآلة المستهدفة، يتضمن مسجلات وحدة المعالجة المركزية وقد يحتوي على مراجع ذاكرة مطلقة بدلاً من المراجع النسبية. تبذل المحسنات المعتمدة على الآلة الجهود لتحقيق أقصى استفادة من التسلسل الهرمي للذاكرة.

أين يتم تطبيق تحسين الكود

الآن بعد أن تعلمنا الحاجة إلى التحسين وأنواعه، دعنا الآن نرى أماكن تطبيق هذا التحسين:

1- البرنامج المصدر: يتضمن تحسين البرنامج المصدر إجراء تغييرات على الخوارزمية أو تغيير هياكل الـ (loop). هنا الذي يقوم بهذا التحسين هو المستخدم.

2- الكود الوسيط: يتضمن تحسين الكود الوسيط تغيير حسابات العناوين وتحويل استدعاءات الإجراءات المعنية. هنا الذي يقوم بهذا التحسين هو المترجم.

3- كود الهدف: ويتم تحسين الكود الهدف بواسطة المترجم. يعد استخدام السجلات وتحديد الإرشادات ونقلها جزءًا من التحسين المتضمن في الكود الهدف.

المصدر: Code Optimization in Compiler Designcompiler Design - Code Optimizationcompiler Design | Code Optimization


شارك المقالة: