پرش به محتوا

جی‌سی‌سی

از ویکی‌پدیا، دانشنامهٔ آزاد
جی‌سی‌سی
توسعه‌دهنده(ها)پروژه گنو
انتشار آزمایشی
۷ مه ۲۰۲۰؛ ۶ سال پیش (۲۰۲۰-۰۵-07}})
مخزن
سیستم‌عاملچندسکویی
حجم۷۱٫۱ مگابایت برای tar.xz.
مجوزپروانه عمومی همگانی گنو
وبگاه

کلکسیون کامپایلر گنو یا «مجموعهٔ مترجمِ کد گنو» (به انگلیسی: GNU Compiler Collection) که به اختصار GCC نیز خوانده می‌شود، مجموعه‌ای از کامپایلرها برای زبان‌های برنامه‌نویسی مختلف است که به وسیلهٔ پروژه گنو به وجود آمده‌است.

جی‌سی‌سی یکی از کلیدی‌ترین اعضای زنجیره ابزار گنو (به انگلیسی: Gnu ToolChain) است. جی‌سی‌سی در ابتدا فقط کامپایلری استاندارد برای سیستم گنو بود ولی امروزه در بسیاری از سیستم‌عامل‌های مشابه یونیکس و ویندوز از آن استفاده می‌شود؛ مانند گنو/لینوکس، خانواده بی‌اس‌دی، اواس ایکس. همچنین جی‌سی‌سی برای معماری‌های سخت‌افزاری مختلف نیز پورت شده‌است.[۱]

جی‌سی‌سی در اوایل سرنام کلمات GNU C Compiler بود؛ زیرا فقط توانایی کامپایل برنامه‌های نوشته شده به زبان C را داشت؛ که با مرور زمان قادر به ترجمه زبان‌های بیشتری مانند سی‌پلاس‌پلاس، فورترن، پاسکال، جاوا، آبجکتیو سی و ایدا شد.[۲] پس از آن جی‌سی‌سی سرنام کلمات GNU Compiler Collection شد.

بنیاد نرم‌افزارهای آزاد جی‌سی‌سی را تحت اجازه‌نامه آزاد گنو (جی‌پی‌ال) نسخه ۳ به انضمام استثناهای منحصر به جی‌سی‌سی منتشر کرده‌است.[۳] جی‌سی‌سی نرم‌افزار آزاد است.[۴]

ریچارد استالمن در تلاش برای راه‌اندازی سیستم‌عامل گنو از اندرو تننبام، نویسندهٔ کیت کامپایلر آمستردام (همچنین از آن به عنوان کین کامپایلر دانشگاه مستقل(به انگلیسی: free University) نیز یاد می‌شود) درخواست کرد که از کامپایلر او استفاده کند اما از آنجا که تننبام در پاسخ توضیح داد که اگرچه نام دانشگاه مستقل (آزاد) است اما کامپایلر آن نیست (بازی با کلمه free) استالمن تصمیم گرفت کامپایلر خود را بنویسد.[۵] وی نوشتن جی‌سی‌سی را در سال ۱۹۸۵ شروع کرد و در سال ۱۹۸۷ به عنوان کامپایلر پروژه گنو منتشر کرد.[۶]

برخی از ویژگی‌ها و امکانات جی‌سی‌سی به قرار زیر است:

  • بهینه‌سازی زمان پیوند هر فایل کد که کامپایل می‌شود یک فایل آبجکت مجزا به همراه یک فایل کمکی برای پیونددهی تولید می‌کند. زمانی که فایل‌های آبجکت پیوند می‌خورند یکبار دیگر کامپایلر اجرا می‌شود و از فایل کمکی برای پیونددهی، برای بهینه‌سازی فایل‌های آبجکتی که به‌طور مجزا تولید شدند در سرتاسر برنامه استفاده می‌کند.
  • افزایه‌ها می‌توانند امکانات کامپایلر را به صورت مستقیم گسترش دهند.[۷]
  • حافظه تراکنشی سی‌پلاس‌پلاس زمانی که با دستور -fgnu-tm اجرا شود.[۸][۹]

پشتیبانی از سخت‌افزارها

[ویرایش | اشتراک‌گذاری]

جی سی سی معماری‌های پردازنده‌های گوناگونی را پشتیبانی می‌کند. به دلیل ماهیت پروژه گنو بخش عقب بندی کامپایلر هم اسمبلری به نام گنو اسمبلر از همین پروژه است (X86).

چند معماری مهم که جی سی سی پشتیبانی می‌کند.

مرتبط

این کامپایلر تحت مجوز گنو جی‌پی‌ال نسخهٔ ۳ منتشر می‌شود، که یک بند استثنا برای آن در وب‌سایت گنو تحت عنوان GCC runtime exception یا «استثنای دورهٔ اجرای جی‌سی‌سی» تعریف شده‌است. این بند به کاربران اجازه می‌دهد تا قادر باشند علاوه بر نرم‌افزارهای آزاد، نرم‌افزارهای غیرجی‌پی‌ال از جمله نرم‌افزارهای انحصاری را هم با استفاده از جی‌سی‌سی کامپایل کنند.[۳]

  1. «GCC 11 Release Series - GNU Project - Free Software Foundation (FSF)». gcc.gnu.org. دریافت‌شده در ۲۰۲۱-۰۵-۱۱.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  2. «GCC Front Ends - GNU Project - Free Software Foundation (FSF)». gcc.gnu.org. دریافت‌شده در ۲۰۱۷-۰۱-۰۴.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  3. 1 2 «GCC Runtime Library Exception». GNU Project. ۲۰۱۴-۰۴-۱۲. دریافت‌شده در ۲۳ دسامبر ۲۰۱۴.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  4. بنیاد نرم‌افزار آزاد. "کلکسیون کامپایلر گنو؛ جی‌سی‌سی". صفحهٔ اصلی جی‌سی‌سی؛ وبسایت گنو (in English).
  5. William.، Von Hagen, (۲۰۰۶-۰۱-۰۱). The definitive guide to GCC. Apress. صص. XXVII. شابک ۹۷۸۱۴۳۰۲۰۲۱۹۶.{{cite book}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده) نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (رده) نگهداری یادکرد:نقطه‌گذاری اضافی (رده)
  6. "تاریخ توسعهٔ جی‌سی‌سی". سافت‌پانوراما (in English).
  7. «Plugins - GNU Compiler Collection (GCC) Internals». gcc.gnu.org. دریافت‌شده در ۲۰۱۷-۰۱-۰۶.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  8. «GCC 6 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF)». gcc.gnu.org. دریافت‌شده در ۲۰۱۷-۰۱-۰۶.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  9. «TransactionalMemory - GCC Wiki». gcc.gnu.org. دریافت‌شده در ۲۰۱۷-۰۱-۰۶.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  10. «Using the GNU Compiler Collection (GCC): MIPS Options». gcc.gnu.org. دریافت‌شده در ۲۰۱۸-۰۸-۳۱.{{cite web}}: نگهداری یادکرد:تاریخ به‌طور خودکار ترجمه‌شده (رده)
  • Richard M. , Stallman and GCC Developer Community, 2003, Using the GNU Compiler Collection, GNU Press, www.gnupress.org, Boston, USA.10