مترجم من مصدر إلى مصدر

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

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

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

هناك امثلة على مترجمات من مصدر إلى مصدر مثل
 كافي سكريبت
 دارت
 هاكس
 تايب سكريبت
 إم سكريبتن

مراجع 

برمجة
قوالب لغات برمجة الحاسوب