الفرق بين المرحلة والمرور في المترجم

الفرق بين المرحلة والمرور في المترجم
الفرق بين المرحلة والمرور في المترجم

فيديو: الفرق بين المرحلة والمرور في المترجم

فيديو: الفرق بين المرحلة والمرور في المترجم
فيديو: أداوت الربط باللغة الانجليزية، ربط الجمل بالانجليزية ، ادوات ربط الجمل 2024, يوليو
Anonim

المرحلة مقابل المرور في المترجم

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

ما هو المرور في المترجم؟

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

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

ما هي المرحلة في المترجم؟

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

ما الفرق بين Phase و Pass in Compiler؟

المرحلة والمرور هما المصطلحان المستخدمان في مجال المجمعين. التمرير هو مرة واحدة يمر فيها المترجم عبر (يمر) كود المصادر أو أي تمثيل آخر له. عادةً ما يكون لمعظم المترجمين مرحلتين على الأقل تسمى النهاية الأمامية والنهاية الخلفية ، بينما يمكن أن تكون إما مرورًا واحدًا أو تمريرة متعددة.يتم استخدام المرحلة لتصنيف المجمعين وفقًا للبناء ، بينما يتم استخدام pass لتصنيف المجمعين وفقًا لكيفية تشغيلهم.

موصى به: