در کامپیوتر، کامپایلر (Compiler) یک برنامه نرمافزاری است که متنی از یک زبان برنامهنویسی سطح بالا (زبان مبدأ) را به زبانی سطح پایین (زبان مقصد)، مانند زبان اسمبلی یا زبان ماشین، تبدیل میکند. خروجی این برنامه ممکن است برای پردازش شدن توسط برنامه دیگری مانند پیونددهنده مناسب باشد یا پرونده متنی باشد که انسان نیز بتواند آن را بخواند.
به عبارت دیگر، کامپایلر یک برنامهنویس را قادر میسازد تا کد خود را در یک زبان سطح بالا بنویسد و سپس آن را به زبان سطح پایین تبدیل کند که توسط کامپیوتر قابل درک و اجرا باشد.
کامپایلرها معمولاً از دو مرحله اصلی تشکیل میشوند:
- تجزیه نحوی (Parsing): در این مرحله، کامپایلر متن زبان مبدأ را تجزیه میکند و آن را به یک درخت نحوی تبدیل میکند.
- تولید کد (Code Generation): در این مرحله، کامپایلر درخت نحوی را به کد زبان مقصد تبدیل میکند.
کامپایلرها انواع مختلفی دارند که با توجه به ویژگیهای مختلف آنها دستهبندی میشوند. از جمله انواع کامپایلر میتوان به موارد زیر اشاره کرد:
- کامپایلر یکباره (One-pass Compiler): این کامپایلرها یک بار کد زبان مبدأ را تجزیه و تولید کد میکنند.
- کامپایلر چندباره (Multi-pass Compiler): این کامپایلرها کد زبان مبدأ را چند بار تجزیه و تولید کد میکنند.
- کامپایلر پیشپردازنده (Preprocessor): این کامپایلرها قبل از کامپایل کردن کد زبان مبدأ، آن را پردازش میکنند تا آماده کامپایل شدن شود.
- کامپایلر کامپایلر (Compiler Compiler): این کامپایلرها میتوانند از یک زبان برنامهنویسی سطح بالا برای نوشتن کامپایلر برای زبان دیگری استفاده کنند.
کامپایلرها نقش مهمی در توسعه نرمافزار ایفا میکنند. آنها به برنامهنویسان این امکان را میدهند تا کد خود را در یک زبان سطح بالا بنویسند که خواندن و نوشتن آن آسانتر است و سپس آن را به زبان سطح پایین تبدیل کنند که توسط کامپیوتر قابل درک و اجرا باشد.
نظرات کاربران