cpp-01-02 کامپایلرهای سی پلاس پلاس و بررسی نسخه های متفاوت

بازدید : 35

0

اشتراک

cpp-01-02 کامپایلرهای سی پلاس پلاس و بررسی نسخه های متفاوت

توضیحات :

کامپایل چیست؟ | فهم دقیق فرآیند Compile در زبان C++

وقتی شما با هر زبان برنامه‌نویسی—از جمله C و C++—کد می‌نویسید، این کدها برای انسان قابل فهم‌اند، اما سخت‌افزار کامپیوتر هیچ درکی از دستوراتی مثل cout یا printf ندارد.
اینجاست که فرآیندی به نام کامپایل (Compile) وارد ماجرا می‌شود.

به‌طور ساده، کامپایل یعنی:

ترجمه سورس‌کد به زبانی که سخت‌افزار بتواند آن را اجرا کند.


مراحل کامپایل در زبان C و C++

در C و C++ این فرآیند چند مرحله مهم دارد:

۱. نوشتن سورس‌کد (Source Code)

فایلی با پسوند .cpp یا .c شامل دستوراتی مثل:

cout << "Hi";

این مرحله فقط منطق شماست—هنوز چیزی قابل اجرا نیست.


۲. کامپایلر → تولید Object File

کد شما تحویل Compiler می‌شود.
کامپایلر سورس‌کد را بررسی می‌کند و خروجی‌ای به نام:

Object File (فایل آبجکت)

تولید می‌کند.
این فایل را با مفاهیم Object-Oriented Programming اشتباه نگیرید—اسم مشابه است، اما معنا کاملاً فرق می‌کند.

آبجکت‌فایل هنوز قابل اجرا نیست.


۳. لینکِر → ساخت فایل اجرایی (Executable)

مرحله بعد توسط لینکر (Linker) انجام می‌شود.

لینکر چکار می‌کند؟

  • آبجکت‌فایل شما را برمی‌دارد

  • کتابخانه‌ها (Libraries) را اضافه می‌کند

  • فایل‌های DLL روی ویندوز یا Shared Libraries روی لینوکس را بررسی می‌کند

  • همه چیز را به هم Link می‌کند

و در نهایت یک فایل اجرایی تولید می‌کند:

  • روی ویندوز → فایل EXE

  • روی لینوکس → فایل ELF

  • روی مک → فایل‌های Mach-O

پس از لینک شدن، برنامه شما قابل اجرا می‌شود.


سایر ابزارهای مهم در کنار کامپایلر

کامپایلر معمولاً همراه چند ابزار دیگر ارائه می‌شود:

  • Assembler (اسمبلر)

  • Linker (لینکر)

  • Linter (لاینتر)

  • Build Tools

  • Debugger

در ادامه دوره، تمام این ابزارها را به صورت عملی بررسی می‌کنیم.


کامپایلرهای مهم C++ — GCC و MSVC

دو کامپایلر اصلی و جدی C/C++ عبارت‌اند از:

۱. GCC (GNU Compiler Collection)

  • پیش‌فرض در لینوکس و macOS

  • قابلیت کامپایل C و C++

  • بسیار قدیمی و پایدار

  • نسخه مخصوص ویندوز هم دارد (مانند MinGW)


۲. MSVC (Microsoft Visual C++)

  • مخصوص ویندوز

  • در Visual Studio استفاده می‌شود

  • فوق‌العاده قدرتمند برای توسعه نرم‌افزار و بازی

  • مرتباً با نسخه‌های ویژوال استودیو آپدیت می‌شود

بسیاری از بازی‌ها و نرم‌افزارهای حرفه‌ای موقع نصب از شما می‌خواهند:

Visual C++ Redistributable
را نصب کنید — این‌ها همان ابزارهای لازم برای اجرای برنامه‌های کامپایل‌شده با MSVC هستند.


کدام کامپایلر بهتر است؟

از نظر استاندارد، تفاوت خاصی برای یادگیری وجود ندارد.
هر دو باید استانداردهای C++ مثل C++11 (استاندارد 2011) را پشتیبانی کنند.

در این دوره آموزش C++:

  • کدها استاندارد هستند

  • روی هر دو کامپایلر اجرا می‌شوند

  • تفاوت‌ها فقط در قابلیت‌های جانبی است


چرا باید کامپایل را عمیق یاد بگیری؟

برای اینکه بفهمی:

  • برنامه‌ات دقیقاً چگونه اجرا می‌شود

  • کتابخانه‌ها چگونه به برنامه Link می‌شوند

  • چرا گاهی برنامه کامپایل می‌شود اما اجرا نمی‌شود

  • تفاوت Build، Compile، Link و Run چیست

  • استانداردهای C++ چطور روی خروجی تأثیر می‌گذارند

این دانش برای هر مهندس نرم‌افزار حرفه‌ای حیاتی است.


جمع‌بندی

کامپایل یعنی تبدیل کد انسان‌خوان به زبان ماشین.
در C++ این فرآیند شامل:

  1. Compile → تولید Object File

  2. Link → تولید فایل اجرایی

و این عمل توسط کامپایلرهایی مثل GCC و MSVC انجام می‌شود.

در ادامه این دوره، مرحله‌به‌مرحله وارد جزئیات کامپایل، لینک، کتابخانه‌ها، استانداردها و ابزارهای توسعه می‌شویم.

لطفا برای گذاشتن نظرات خود وارد شوید

نظرات شما عزیزان