المترجم المتعدد هو مترجم قادر على صنع كود تنفيذي لأكثر من منصة حاسوبية، ويمكن أن ينتج أكواداً لمنصة تختلف عن المنصة التي يعمل عليها. على سبيل المثال، نقول عن مترجم يعمل على ويندوز 7 للحواسيب الشخصية لكنه ينتج كود يعمل على الأجهزة الذكية مثل أندرويد أنه مترجم متعدد.
المترجم المتعدد ضروري لإنتاج كود يعمل على منصات المتعددة من منصة وحدة. قد تكون المنصة المستهدفة لا تسمح بتشغيل مترجم عليها، مثل المتحكمات المصغرة في الأنظمة المضمنة، لأن هذه المنصات لا تحوي نظام تشغيل.
استخدامات المترجم المتعدد
الاستخدام الأساسي للمترجم المتعدد هو فصل بيئة بناء الكود عن بيئة التنفيذ. وهذا مفيد في عدة مواقع:
- الأنظمة المضمنة حيث يملك الجهاز موارد محدودة. على سبيل المثال، يملك فرن الميكروويف حاسوباً صغيراً جداً يقرأ حساسات في الباب وشاشة اللمس، ويعطي مخرجات عبر شاشة رقمية ومكبر صوت، ويتحكم بالجهاز في طبخ الطعام. هذا الحاسوب ليس قوياً بما يكفي لتشغيل مترجم، أو نظام ملفات، أو بيئة برمجية. قد يتطلب اكتشاف العلل والاختبار موارد حاسوبية أكبر من موارد الأنظمة المضمنة، ولهذا يحتمل أن تكون الترجمة المتعددة أقل تعقيداً وعرضة للأخطاء من الترجمة العادية.
- الترجمة لعدة أجهزة،على سبيل المثال،شركة تريد دعم إصدارات مختلفة من نظام تشغيل معين أو دعم عدة أنظمة تشغيل.باستخدام الترجمة المتعددة،يمكن أن تعمل الترجمة لهذه الأهداف بعملية بناء واحدة للبيئة.
- الترجمة في مجموعة خوادم.يشبه الترجمة في عدة أجهزة،يتطلب البناء المعقد عدة عمليات ترجمة يمكن أن تنفذ في أي جهاز غير مشغول بغض النظر عن بنيته التحتية ومكوناته المادية أو نسخة نظام التشغيل الذي يعمل عليه.
- إنشاء مترجم لمنصة جديدة.عندما تطور برنامج لمنصة جديدة،أو محاكي لمنصة مستقبلية،يستخدم المترجم المتعدد لترجمة الأدوات الضرورية مثل نظام التشغيل والمترجم الأصلي.
- ترجمة كود أصلي للمحاكيات لمنصات قديمة مثل أبل 2 من قبل المتحمسين الذين يستخدمون الترجمة المتعددة والتي تعمل على منصة محددة (مثل المترجمات المتعددة أزتك 6502 (C's MS-DOS) والذي يعمل على ويندوز إكس بي).
استخدام الآلات الافتراضية (مثل آلة جافا الافتراضية) يظهر بعض من أسباب تطوير المترجمات المتعددة.
مترجمات سي ميكروسوفت
الأوائل-الثمانينيات
يملك مايكروسوفت فيجوال سي++ تاريخ طويل[1] يعود إلى ثمانينيات القرن الماضي. صنع أول مترجم ميكروسوفت سي بواسطة نفس الشركة التي صنعت مترجم سي الشعري (Lattice C) وتم تغيير الماركة إلى ميكروسوفت، حتى تم إطلاق مايكروسوفت فيجوال سي++ 4، والذي يعتبر أول مترجم تصنعه ميكروسوفت بنفسها.[2]
مراجع
- Microsoft Language Utility Version History - تصفح: نسخة محفوظة 21 أكتوبر 2012 على موقع واي باك مشين.
- History of PC based C-compilers - تصفح: نسخة محفوظة 22 يوليو 2012 على موقع واي باك مشين.
وصلات إضافية
- Cross Compilation Tools – مرجع في التعديل على أدوات غنو في الترجمة المتعددة
- Building Cross Toolchains with gcc هو أحد المراجع في المترجم المتعدد جي سي سي على شكل ويكي.
- Scratchbox صندوق أدوات للمترجمات المتعددة من نظام لينكس إلى أي أر إم (ARM) وx86
- Grand Unified Builder (GUB) (خاص بنظام لينكس) مترجم متعدد وعابر للمعماريات مثل: وندوز32/ماك/فري بي أس دي/لينكس يستخدم من قبل GNU LilyPond.
- Crosstool هو سلسلة أدوات من سكربتات،تنشأ بيئة مترجم متعدد على نظام لينكس لأجل معمارية معنية،من ضمنها الأنظمة المضمنة.
- crosstool-NG هي أداة متعددة تساعد في بناء سلاسل الأدوات .
- buildroot هي مجموعة من السكربتات لبناء سلسلة أدوات تعتمد على (uClibc)،عادة لأجل الأنظمة المضمنة.مستخدمة من قبل نظام (OpenWrt)
- ELDK (Embedded Linux Development Kit). مستخدمة من قبل داس يو بوت.
- T2 SDE هي مجموعة من السكربتات لبناء أنظمة لينكس كاملة تعتمد على مكتبة سي غنو (GNU libC)، أو uClibc أو dietlibc لأجل معماريات مختلفة.
- Cross Linux from Scratch Project
- تملك أي بي إم (IBM) تدريب واضح جداً حول بناء المتعدد لسلاسل الأدوات لمترجم جي سي سي.
- (بالفرنسية) Cross-compilation avec GCC 4 sous Windows pour Linux - A تدريب فيه كيف تبني سلاسل الأدوات لمترجم جي سي سي، لكن من ويندوز إلى لينكس، الموضوع يُوضح ببطئ.