کامپایل شرطی

در برنامه نویسی کامپیوتر، کامپایل شرطی روش های اجرای کامپایل است که به کامپایلر اجازه می دهد تفاوت هایی را در برنامه اجرایی تولید و توسط پارامترهای ارایه شده در هنگام کامپایل کنترل کند. این تکنیک معمولاً زمانی مورد استفاده قرار می گیرد که این تفاوت ها لازم باشد نرم‌افزار را بر روی سیستم عامل های مختلف یا نسخه های متفاوت کتابخانه ای و یا سخت افزار اجرا کند. 

بسیاری از زبان های برنامه نویسی کامپایل شرطی را پشتیبانی می کنند. به طور معمول قوانین کامپایلر متغیرهای خاصی را تعریف می کنند و یا " تعریف نمی‌کنند". قوانین دیگری نیز این متغیر ها را آزمایش می کنند و بر این اساس کامپایل را اصلاح می کنند. به عنوان مثال، بدون استفاده از یک زبان واقعی، کامپایر ممکن است طوری تنظیم شود که " Macintosh " را تعریف کند و " PC " را تعریف نکند، و کد ممکن است شامل قسمت زیر باشد: (* System generic code *)
if mac!=Null then
    (* macOS specific code *)
else if pc!=Null
    (* Windows specific code *)در C و بعضی از زبان ها به صورت مشابه، این کار با استفاده از یک دستورالعمل " ifdef " انجام می شود.

در روشی مشابه ، با استفاده از نام " نظر شرطی " توسط Microsoft Internet Explorer  از نسخه 5 تا 9 برای تفسیر کدHTML استفاده می شود. همچنین روش اختصاصی مشابهی برای اضافه کردن نظرهای شرطی در JScript وجود دارد که به عنوان کامپایل شرطی شناخته می شود.

منابع 
https://web.archive.org/web/20080906144358/http://msdn2.microsoft.com/en-us/library/ahx1z4fs(VS.80).aspx .3
پیاده‌سازی زبان برنامه‌نویسی