کامپایلر (Compiler) برنامه یا مجموعه ای از برنامه های کامپیوتری است که متنی از زبان برنامه نویسی سطح بالا (زبان مبدأ) را به زبانی سطح پایین (زبان مقصد) تبدیل می کند. خروجی این برنامه ممکن است برای پردازش شدن توسط برنامه دیگری مثل پیوند دهنده مناسب باشد یا فایل متنی باشد که انسان نیز بتواند آن را بخواند. عملکرد کامپایلر مانند دوبله یک فیلم خارجی می باشد که ابتدا کل فیلم به زبان فارسی ترجمه می شود و سپس در اختیار بینندگان قرار می گیرد. کامپایلر نیز ابتدا زبان برنامه نویسی مبدأ را به زبان ماشین تبدیل کرده و سپس این برنامه روی کامپیوتر اجرا می شود. ما در این آموزش قصد داریم تا گرامرها در طراحی کامپایلر را مورد بررسی قرار دهیم.