ترجمه دوگانه، همگردان دوگانه، مترجم تقابلی، کامپایلر متقابل یا کراس کامپایلر ( به انگلیسی: Cross compiler ) کامپایلری است که قادر به ایجاد کد اجرایی برای سیستم عامل دیگری غیر از آنچه در آن اجرا می شود، است. به عنوان مثال کامپایلری که روی رایانه شخصی ویندوز اجرا می شود اما کدی را تولید می کند که روی تلفن هوشمند اندروید اجرا می شود، یک کامپایلر متقابل است.
یک کامپایلر متقابل برای کامپایل کد برای چندین سیستم عامل از یک میزبان توسعه ضروری است. کامپایل مستقیم روی سیستم عامل ممکن است غیرممکن باشد ، برای مثال در میکروکنترلر یک سیستم جاسازی شده، زیرا این سیستم ها فاقد سیستم عامل هستند. در مجازی سازی، یک رایانه چندین سیستم عامل را اجرا می کند و یک کامپایلر متقابل می تواند برای هر یک از آنها از یک منبع اصلی کد قابل اجرا تولید کند. .
کامپایلرهای متقابل از کامپایلرهای منبع به منبع دو ابزار برنامه نویسی متمایز هستند. یک کامپایلر متقابل برای توسعه چندپلتفرمی نرم افزارهای کد ماشین است، در حالی که یک کامپایلر منبع به منبع متن کد را از یک زبان برنامه نویسی به زبان دیگر ترجمه می کند.
کاربرد اصلی یک کامپایلر متقاطع، جدا کردن محیط ساخت از محیط هدف است. این در چندین موقعیت مفید است:
• رایانه های جاسازی شده که منابع بسیار محدودی در دستگاه دارند. به عنوان مثال یک اجاق مایکروویو دارای یک رایانه بسیار کوچک برای خواندن صفحه لمسی و سنسور درب برای تأمین خروجی به نمایشگر دیجیتال و بلندگو و کنترل ماشین آلات پخت غذا است. این رایانه برای اجرای کامپایلر، سیستم فایل یا محیط توسعه به اندازه کافی قدرتمند نخواهدبود. از آنجا که رفع اشکال و آزمایش ممکن است به منابع بیشتری از آنچه در دسترس یک سیستم جاسازی شده است، نیاز داشته باشد، کامپایل متقابل می تواند نسبت به کامپایل بومی کمتر مستعد خطا باشد. .
• تدوین برای چندین ماشین: به عنوان مثال ممکن است یک شرکت بخواهد چندین نسخه مختلف از یک سیستم عامل را پشتیبانی کند یا از چندین سیستم عامل مختلف پشتیبانی کند؛ با استفاده از کامپایلر متقابل، می توان یک محیط ساخت واحد را برای کامپایل هر یک از این اهداف تنظیم کرد.
• تدوین در مزرعه سرور: مشابه کامپایل کردن برای چندین ماشین، ساخت پیچیده ای شامل تعداد بسیاری عملیات کامپایل می تواند در هر دستگاهی که در دسترس است، صرف نظر از سخت افزار زیرین یا نسخه سیستم عامل، اجرا شود.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفیک کامپایلر متقابل برای کامپایل کد برای چندین سیستم عامل از یک میزبان توسعه ضروری است. کامپایل مستقیم روی سیستم عامل ممکن است غیرممکن باشد ، برای مثال در میکروکنترلر یک سیستم جاسازی شده، زیرا این سیستم ها فاقد سیستم عامل هستند. در مجازی سازی، یک رایانه چندین سیستم عامل را اجرا می کند و یک کامپایلر متقابل می تواند برای هر یک از آنها از یک منبع اصلی کد قابل اجرا تولید کند. .
کامپایلرهای متقابل از کامپایلرهای منبع به منبع دو ابزار برنامه نویسی متمایز هستند. یک کامپایلر متقابل برای توسعه چندپلتفرمی نرم افزارهای کد ماشین است، در حالی که یک کامپایلر منبع به منبع متن کد را از یک زبان برنامه نویسی به زبان دیگر ترجمه می کند.
کاربرد اصلی یک کامپایلر متقاطع، جدا کردن محیط ساخت از محیط هدف است. این در چندین موقعیت مفید است:
• رایانه های جاسازی شده که منابع بسیار محدودی در دستگاه دارند. به عنوان مثال یک اجاق مایکروویو دارای یک رایانه بسیار کوچک برای خواندن صفحه لمسی و سنسور درب برای تأمین خروجی به نمایشگر دیجیتال و بلندگو و کنترل ماشین آلات پخت غذا است. این رایانه برای اجرای کامپایلر، سیستم فایل یا محیط توسعه به اندازه کافی قدرتمند نخواهدبود. از آنجا که رفع اشکال و آزمایش ممکن است به منابع بیشتری از آنچه در دسترس یک سیستم جاسازی شده است، نیاز داشته باشد، کامپایل متقابل می تواند نسبت به کامپایل بومی کمتر مستعد خطا باشد. .
• تدوین برای چندین ماشین: به عنوان مثال ممکن است یک شرکت بخواهد چندین نسخه مختلف از یک سیستم عامل را پشتیبانی کند یا از چندین سیستم عامل مختلف پشتیبانی کند؛ با استفاده از کامپایلر متقابل، می توان یک محیط ساخت واحد را برای کامپایل هر یک از این اهداف تنظیم کرد.
• تدوین در مزرعه سرور: مشابه کامپایل کردن برای چندین ماشین، ساخت پیچیده ای شامل تعداد بسیاری عملیات کامپایل می تواند در هر دستگاهی که در دسترس است، صرف نظر از سخت افزار زیرین یا نسخه سیستم عامل، اجرا شود.
wiki: ترجمه دوگانه