کامپایلر چیست و چگونه کار می کند؟ مسئولیت کامپایلر چیست و چه نقشی در برنامه نویسی دارد؟
کامپایلر نقش مترجمی در برنامه نویسی را دارد. سوال اصلی این جاست که چه چیزی را ترجمه می کند و خروجی آن ترجمه چیست؟ اصلا چه احتیاجی به ترجمه است؟
زبان های سطح بالا و سطح پایین این دسته بندی را تشکیل می دهند. وظیفه کامپایلر در برنامه نویسی نیز ترجمه زبان سطح بالا ( نزدیک به زبان انسان) به یک برنامه با زبان سطح پایین (قابل درک برای ماشین) است.
به بیان دیگر وقتی شما سلسله دستوراتی را در زبان برنامه نویسی مدنظر خود مانند C، می نویسید و آن را کامپایل و run می کنید، کامپایلر کدهای شما را می خواند و همه را به زبان مقصد (ماشین و یا اسمبلی) تغییر می دهد.
ورودی کامپایلر را معمولا با نام Source code می شناسیم و خروجی آن را نیز با نام Object code می شناسیم.
بعضی از کامپایلر ها زبان مبدا (زبان سطح بالا) را به صورت مستقیم به کدهای باینری یا دودویی تبدیل می کنند و بعضی دیگر این کار را به صورت غیر مستقیم انجام می دهند. یعنی در مرحله میانی کامپایل(intermediate Step)، ابتدا آن را به زبان اسمبلی ترجمه می کنند و سپس از اسمبلی به دودویی تبدیل می کنند.