کامپایلر (Compiler) چیست؟
کامپایلر چیست و چگونه کار می کند؟ مسئولیت کامپایلر چیست و چه نقشی در برنامه نویسی دارد؟
اگر شما هم به دنبال پاسخ این سوالات هستید، تا انتهای مقاله همراه ما باشید.

کامپایلر چیست؟
کامپایلر نقشی مترجمی در برنامه نویسی را دارد. سوال اصلی این جاست که چه چیزی را ترجمه می کند و خروجی آن ترجمه چیست؟ اصلا چه احتیاجی به ترجمه است؟
اگر مقاله مرتبط با زبان های برنامه نویسی سایت ابرمتن را مطالعه کردید، این موضوع را می دانید که زبان ها دارای دسته بندی بسیار مهمی هستند.
زبان های سطح بالا و سطح پایین این دسته بندی را تشکیل می دهند. وظیفه کامپایلر در برنامه نویسی نیز ترجمه زبان سطح بالا ( نزدیک به زبان انسان) به یک برنامه با زبان سطح پایین (قابل درک برای ماشین) است.
به بیان دیگر وقتی شما سلسله دستوراتی را در زبان برنامه نویسی مدنظر خود مانند C، می نویسید و آن را کامپایل و run می کنید، کامپایلر کدهای شما را می خواند و همه را به زبان مقصد (ماشین و یا اسمبلی) تغییر می دهد.
ورودی کامپایلر را معمولا با نام Source code می شناسیم و خروجی آن را نیز با نام Object code می شناسیم.
روش کار کامپایلر:
بعضی از کامپایلر ها زبان مبدا (زبان سطح بالا) را به صورت مستقیم به کدهای باینری یا دودویی تبدیل می کنند و بعضی دیگر این کار را به صورت غیر مستقیم انجام می دهند. یعنی در مرحله میانی کامپایل(intermediate Step)، ابتدا آن را به زبان اسمبلی ترجمه می کنند و سپس اط اسمبلی به دودویی تبدیل می کنند.
به این فرایند تبدیل کد منبع به کدهای باینری یا دودویی کامپایل یا compilation می گوییم.
فرایند کامپایل قواعد نحوی یک زبان برنامهنویسی را به یک زبان برنامهنویسی دیگر ترجمه می کند. باید این نکته را یادآور بشویم که کامپایلر تنها یک برنامه است و توانایی برطرف کردن ایراد کدهای نوشته شده توسط انسان را ندارد. به این ترتیب اگر کد اولیه برنامه اشکال و ایرادی داشته باشد، تا زمانی که این ایرادها بر طرف نشده باشند، کامپایلر نمیتواند آن را کامپایل کند.
می توانیم بگوییم که پیچیدگی کار کامپایلر به مقدار زیادی به پیچیدگی نحو زبان مبدا بستگی دارد. به عنوان مثال کار کامپایلر زبان c، راحت تر از کامپایلر زبان سی پلاس پلاس و یا سی شارپ است.
مراحل کار کامپایلر:
همه کامپایلر ها برای کار معمولا مراحل زیر را طی می کنند:
اسکن:
در این مرحله حروف و خطوط به صورت خط به خط اسکن می شوند. کامپایلر صحت خط ها و کدها و حروف آن را از نظر نحوی چک می کند و اگر مشکلی وجود نداشته باشد به مرحله بعدی می رود. (برای درک بهتر نحو و syntax به مقاله خطاهای syntax و semantic مراجعه کنید.)
تحلیل حروف:
در این مرحله کامپایلر پس از این که حروف را اسکن کرد، دسته بندی توکن های برنامه را مشخص می کند. به عنوان مثال int a= 3 این خط کد شامل 3 توکن است. یک توکن برای نوع اینتیجر یا صحیح، یک توکن برای انتساب یا = و توکن دیگر برای مقدار یا value. در این بخش نقش هر توکن مشخص می شود.
تحلیل نحوی :
بعد از این که کامپایلر حروف و توکن ها را تحلیل کرد، وارد مرحله تحلیلگر نحوی می شود. در این مرحله اعتبار کلمات و عبارات بر اساس دستورات گرامری سنجیده می شود. در واقع در این بخش این موضوع چک می شود که آیا توکن هایی که کنار یکدیگر قرار گرفتند از لحاظ نحوی و ترتیب درست هستند یا خیر.
تحلیل معنایی :
در این نوع تحلیل چند فرایند اتفاق میافتد. فرایند اول این است که همه ساختار توکنهای از نو بررسی میشوند، و ترتیب و محل قرارگیری آنها در دستور زبان یا گرامر یک زبان برنامهنویسی مشخص بررسی میشود. سپس معنای ساختار توکن توسط پارسر (parser) و تحلیل گر برنامه تحلیل میشود تا در نهایت کدی اجرایی به دست بیاید که به آن کد ابژه گفته میشود.
کد ابژه شامل دستوراتی میشود که فعالیت پردازنده را در قبال یک توکن مشخص در برنامه مشخص میکند. در نهایت، تمام کد مبدا در پارسر بررسی و تحلیل میشود تا امکان بهینهسازیهای احتمالی بررسی شود. در صورتی که امکان بهینهسازی وجود داشته باشد، توکنهای اصلاح شده در کد ابژه قرار میگیرند تا کد ابژه نهایی به دست بیاید؛ که در نهایت در یک فایل ذخیره میشود.
آخرین مطالب
- Casino außerhalb von OASIS: Spielen ohne die Sperrdatei-Registrierung 2024
- Casino mit zügiger Auszahlung: Die führenden Anbieter für sofortige Gewinnauszahlungen 2024
- Meilleur site paris sportif en dehors d’ARJEL : Guide exhaustif 2024
- Заряд адреналина и удачи: как и зачем скачивать Мелбет в 2026 году
- Funky Time Non Gamstop
- Funky Time Non Gamstop
- Tower Rush by Galaxsys Play the Best Turbo Game Online 2026
- Stake Casino Apskats️Kriptovalūtas Kazino Plusi Un Mīnusi
- Зарядись движем! Как скачать мелбет мобильную версию бесплатно и с гарантией кайфа в 2026
- Enjoy On line Roulette for real Money: Better Gambling establishment Internet sites inside the 2026
- Finest Real cash Harbors Online Better Position Online game To experience 2025
- Finest Real money Web based casinos Greatest Us Local casino Internet sites in the 2025
- Come Scegliere i Più Affidabili Casino Online Stranieri Sicuri e Affidabili
- Legzo Casino: Пионер онлайн‑игр в Казахстане
- Betify Casino Avis Bonus exclusif 2025.21895 (2)

2 دیدگاه. پیغام بگذارید
ممنون از مقالات مختصر و مفیدتون.
ممنون از همراهیتون…