TGViewer
Univerbity Univerbity @univerbity · 362 subscribers
Post #281 485
همه معمولا کامپایل شدن یه کد (C) رو در یک مرحله واحد میبینن. در صورتی که کامپایل از چندین لایه تشکیل شده 🗒

1⃣ اولین مرحله برای کامپایل Preprocessor نام داره.
تو این مرحله کد نوشته قبل از کامپایل به Preprocessor سپرده میشه تا تغییرات قبل از کامپایل روش اجرا بشه.  این تغییرات شامل جایگذاری و اعمال تغییرات روی کد توسط preprocessor directive هاست (دستور هایی که با # شروع میشن). مثل جایگذاری define# ها یا بررسی if# و...
یه جورایی کد رو قبل از پردازش و کامپایل برای کامپایلر آماده میکنه.

2⃣ مرحله دوم Compilation هستش!
کامپایلر کد به اصطلاح preprocessing شده رو میگیره و به اسمبلی (Assembly) تبدیل میکنه. تو این مرحله بررسی syntax،type cheking، optimization،semantic analysis انجام میشه و در نهایت کد به اسمبلی کامپایل میشه.

3⃣ این مرحله Assembling نام داره.
اینجا کد اسمبلی که توی مرحله قبل ساخته شده به Assembler داده میشه تا به Machine code تبدیل بشه.
خروجی این پردازش میشه چیزی به نام Object file که داخلش ماشین کد، symbol ها و ... وجود داره.
اما هنوز قابل اجرا یا executable نیست.

4⃣ این مرحله Linking نام داره.
که با Linker انجام میشه.
فرض کن توی کدمون از تابع printf استفاده کرده باشیم. اینجا ما کد خودمون رو داریم و implementation مربوط به printf رو نداریم که!
اینجا لینکر میاد وسط و reference های unresolved رو به implementation مربوط متصل میکنه.
حالا لینکر میاد و همه این قطعات رو میذاره کنار هم و یه فایل executable میسازه که قابل اجرا هستش.

ابزار هایی مثل gcc فقط کامپایل نمیکنن بلکه همه این مراحل رو برای کامپایل کردن طی میکنن! 🍉

(توی پست های بعدی در رابطه با همه این موارد بیشتر توضیح خواهم داد (مخصوصا preprocessor)) 💯
  • 🔥 6
  • ❤ 3
More from @univerbity
  1. Oct 9, 2026سیستم عامل به سبکِ تِرِد فصل پراسس ها قسمت پایانی 🔥 با کمی تاخیر منتشر شد 🎉 (مطالعه کنید…
  2. Oct 7, 2026همونطور که گفتیم اولین مرحله کامپایل(C) Preprocessing هستش. این مرحله توسط پری پراسسور (Pr…
  3. Sep 27, 2026چند وقتیه دارم کتاب Pointers on C رو میخونم. در حین خوندن کانسپت های مهم و عمیق رو هایلایت…
  4. Sep 26, 2026دیروز به یه چیز خیلی باحالی برخوردم ✨ میخواستم یه پروژه ای رو بیارم بالا و تستش کنم. پروژه…
  5. Sep 20, 2026سیستم عامل به سبکِ تِرِد فصل دوم قسمت اول 🔥 با کمی تاخیر منتشر شد 🎉 (مطالعه کنید) نویسند…
  6. Sep 13, 2026درود به همگی 🌹 این مدت درگیر توسعه دوچن بودم و خیلی سرم شلوغ بود. کم کم داریم به انتشار ن…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →