موضوع مقاله: کامپایلر سی پلاس پلاس اینتل | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # کامپایلر سی پلاس پلاس اینتل | مقدمه: کامپایلر سی++ اینتل، همچنین به عنوان آی‌سی‌سی یا آی‌سی‌ال شناخته می‌شود، گروهی از کامپایلرهای سی و سی پلاس پلاس از اینتل است که برای ویندوز، مک، لینوکس، فری‌بی‌اس‌دی و دستگاه‌های اندروید مبتنی بر اینتل در دسترس است. | ## بخش 1: کامپایلر سی پلاس پلاس اینتل | بررسی اجمالی کامپایلرها کدهای بهینه شده برای معماری آی‌ای-۳۲ و اینتل ۶۴ و کدهای غیربهینه شده برای پردازنده‌های غیر اینتل اما سازگار مانند پردازنده‌های خاص ای‌ام‌دی تولید می‌کنند. نسخه ویژه ای از کامپایلر (۱۱٫۱) برای توسعه برنامه‌های مبتنی بر Linux برای پردازنده‌های (ایتانیوم IA-64 (۲ در دسترس است. کامپایلر ۱۴٫۰ پشتیبانی از دستگاه‌های اندروید مبتنی بر اینتل و بهینه‌سازی شده و دستورالعمل‌های SSE Family را برای بهبود عملکرد اضافه کرده‌است. استفاده از چنین دستورالعملی از طریق کامپایلر می‌تواند منجر به بهبود عملکرد برنامه در برخی از برنامه‌ها با معماری آی‌ای-۳۲ و اینتل ۶۴ شود، در مقایسه با برنامه‌های ساخته شده با کامپایلرها که از این دستورالعمل‌ها پشتیبانی نمی‌کنند. کامپایلرهای اینتل از کیلک پلاس پشتیبانی می‌کنند (که در نسخه ۱۹٫۱ حذف شده‌است)، این یک توانایی برای نوشتن کدهای برداری و موازی است که می‌تواند در پردازنده‌های IA-32 و Intel 64 استفاده شود یا می‌تواند در پردازنده‌های زئون فای بارگیری شود. آن‌ها همچنین پشتیبانی از اپن ام‌پی ۴، چند پردازی متقارن، موازی سازی خودکار و پارالایزاسیون خودکار هدایت شده (GAP) را ادامه می‌دهند. با قابلیت افزودنی کلاستر اوپن‌ام‌پی، کامپایلرها همچنین می‌توانند به‌طور خودکار تماس‌های رابط انتقال پیام برای چندپردازشی حافظه توزیع شده از بخشنامه‌های اوپن‌ام‌پی را ایجاد کنند. | ## بخش 2: کامپایلر سی پلاس پلاس اینتل | اینتل سی++ با ویژوال سی++ در ویندوز سازگار است و در مایکروسافت ویژوال استودیو ادغام می‌شود. کامپایلرهای اینتل به دلیل عملکردی که می‌توانند با اندازه‌گیری توسط معیارهایی مانند معیارهای SPEC CPU اندازه‌گیری کنند، شناخته شده‌اند. بهینه‌سازی‌ها کامپایلرهای اینتل با استفاده از پردازنده‌هایی که از معماری‌های اینتل پشتیبانی می‌کنند، برای سیستم‌های رایانه ای بهینه می‌شوند. آنها برای به حداقل رساندن غرفه‌ها (stalls) و تولید کدی طراحی شده‌اند که در کمترین تعداد چرخه ممکن اجرا می‌شود. کامپایلر سی++ اینتل از سه تکنیک سطح بالا جداگانه برای بهینه‌سازی برنامه کامپایل شده پشتیبانی می‌کند: ببهینه سازی درون تابع (آی‌پی‌او)، بهینه‌سازی هدایت شده با پروفایل (پی‌جیی‌او) و بهینه‌سازی‌های سطح بالا (اچ‌ال‌او). بهینه‌سازی با راهنمای پروفایل به حالت بهینه‌سازی اشاره دارد که در آن کامپایلر قادر است به داده‌های حاصل از اجرای نمونه برنامه از طریق مجموعه ورودی نماینده دسترسی پیدا کند. داده‌ها نشان می‌دهد که کدام مناطق از برنامه با دفعات بیشتری اجرا می‌شوند و کدام مناطق با دفعات کمتری اجرا می‌شوند. | ## بخش 3: کامپایلر سی پلاس پلاس اینتل | همه بهینه‌سازی‌ها از بازخورد هدایت شده توسط پروفایل بهره‌مند می‌شوند چون هنگام تصمیم‌گیری در مورد تدوین، کمتر به روشهای ابتکاری اعتماد دارند. بهینه‌سازی‌های سطح بالا بهینه‌سازی‌های انجام شده روی نسخه ای از برنامه است که نگاه نزدیک تری به کد منبع دارد. تاریخچه از سال ۲۰۰۳ نسخه کامپایلر تاریخ انتشار عمده ویژگی‌های جدید کامپایلر Intel C ++ 8.0 ۱۵ دسامبر ۲۰۰۳ عناوین از پیش تلفیقی، ابزارهای پوشاندن کد. کامپایلر Intel C ++ 9.0 ۱۴ ژوئن ۲۰۰۵ معماری AMD64 (برای ویندوز)، بهینه‌سازی پیش محاسبات احتمالی مبتنی بر نرم‌افزار (SSP)، گزارش‌های بهینه‌سازی حلقه بهبود یافته. در هر مرحله از مراحل گردآوری از اطلاعات پروفایل استفاده می‌کند اشکال زدایی کامپایلر اینتل اطلاعات اشکال زدایی استاندارد برای اشکال زداهای رایج (مانند DWARF 2 در لینوکس، مشابه gdb و COFF برای ویندوز) را ارائه می‌دهد. پرچم‌هایی که با اطلاعات اشکال زدایی کامپایل می‌شوند Zi/ در ویندوز و -g در لینوکس هستند. اشکال زدایی در ویندوز با استفاده از خطایاب ویژوال استودیو(VS) و در لینوکس با استفاده از gdb انجام می‌شود. | ## جمع‌بندی | در مورد خطاهای حافظه، به تشخیص نشت حافظه، خرابی حافظه، تخصیص / عدم تخصیص تطابق API و استفاده ناسازگار از API حافظه کمک می‌کند.