کامپایلر یک ابزار توسعه نرم افزار است که برنامه های نرم افزاری که با زبان های سطح بالا نوشته شده اند را تبدیل به مجموعه ای از دستورات می کند تا یک پردازنده خاص آن را متوجه شود.
زبانهای برنامهنویسی به صورت کلی به دو دسته تقسیم می شوند: زبانهای کامپایلری (Compiled language) و زبانهای تفسیری (Interpreted language).
(برای آشنایی بیشتر با تفاوت بین فرایندهای Compiler و Interpreter میتوانید به مقالهی Compiler با Interpreter چه تفاوتهایی دارا است؟ در سایت سکان آکادمی مراجعه کنید.)
مثالهایی از زبانهای کامپایلری:
- C
- ++C
- #C
- Java
- Go
- Swift
کامپایلر برای تبدیل کردن کد زبان سطح بالا به دستورات ماشین 6 مرحله اصلی را طی میکند:
- تحلیل لکسیکال (lexical analysis)
- تحلیل سینتکس (syntax analysis)
- تحلیل سمنتیک (semantic analysis)
- تولید کننده کد میانی (intermediate code generator)
- بهینه کننده کد (code optimizer)
- تولید کننده کد (code generator)
در هر مرحله از کامپایل، ممکن است خطایی رخ دهد، که این خطا به قسمت کنترل کننده خطا ارسال میشود.