وقت التجميع
في مجال الحوسبة ، يُشير وقت الترجمة إلى الفترة الزمنية التي يقوم فيها المُترجم بمعالجة الشيفرة المصدرية وتحويلها إلى شيفرة أخرى قابلة للتنفيذ بسهولة أكبر ، وعادةً ما تكون شيفرة كائنية أو شيفرة بايت . [ 1 ] يُعد وقت الترجمة مرحلةً في دورة حياة البرنامج التشغيلية ، حيث ينتقل من مرحلة التطوير إلى مرحلة التنفيذ . ويُشار عادةً إلى المدة الزمنية اللازمة للترجمة بـ" وقت الترجمة" ، مع العلم أنه يُمكن استخدام مصطلح "وقت الترجمة" أيضًا.
يمكن تقسيم وقت الترجمة إلى مراحل. تحتوي معظم المترجمات على المراحل التالية على الأقل: تحليل بناء الجملة ، والتحليل الدلالي ، وتوليد الكود . تتضمن العديد من المترجمات مرحلة أو أكثر من مراحل التحسين. على سبيل المثال، قد يتم تقييم كل تعبير ثابت أثناء الترجمة لإنتاج قيمة تُحسّن أداء وقت التشغيل. [ 2 ] [ 3 ]
تشمل خصائص البرنامج التي يمكن تحديدها أثناء الترجمة التحقق من النطاق (مثل إثبات أن فهرس المصفوفة لن يتجاوز حدودها)، وتجنب حالات الجمود في اللغات المتزامنة ، أو التوقيت (مثل إثبات أن سلسلة من التعليمات البرمجية لا تستغرق أكثر من الوقت المخصص لها). أما في اللغات ذات الكتابة الثابتة مثل C++ و Java و Rust ، فيتم التحقق من الأنواع أثناء الترجمة لضمان سلامة النوع . [ 4 ]
تُعدّ عملية التجميع عادةً جزءًا من عملية البناء (أثناء البناء). وقد يشمل البناء أيضًا عملية الربط (أثناء الربط). أما وقت التشغيل فهو المدة التي يعمل فيها البرنامج.
في كثير من الأحيان، تتم عملية الترجمة كخطوة منفصلة قبل تشغيل البرنامج. ولكن مع الترجمة الديناميكية ، يتم تحويل الكود إلى لغة الآلة كجزء من عملية التشغيل ، مما يدمج وقت التشغيل ووقت الترجمة. غالبًا ما يتم تقسيم هذه العملية إلى عمليتين متميزتين: عملية وقت البناء التي تحول الكود المصدري إلى تمثيل وسيط (IR)، وعملية وقت التشغيل التي تحول التمثيل الوسيط إلى كود الآلة.
انظر أيضاً
- التجميع المسبق – استراتيجية تجميع شفرة الحاسوب
- الترجمة الفورية – ترجمة الشفرة البايتية إلى شفرة الآلة في وقت التشغيل
- نظام الأنواع – مفهوم في علوم الحاسوب
مراجع
- ↑ "تاريخ لغات برمجة الحاسوب" . تم الاطلاع عليه بتاريخ 25-12-2022 .
- ↑ يونغوي، وو (7 أكتوبر 2024). "برمجة وقت الترجمة بلغة C++" . accu.org . تم الاسترجاع في 26 أبريل 2025 .
- ↑ "تقييم وقت الترجمة" . C3 . تم الاسترجاع في 26-04-2025 .
- ↑ "أنواع البيانات - لغة برمجة Rust" . doc.rust-lang.org . تم الاطلاع عليه بتاريخ 26-04-2025 .
- بناء المترجم
