تک دیک

واژه نامه و مجله آموزشی کامپیوتر و فناوری

کامپایلر Compiler

کامپایلر یا Compiler چیست؟

کامپایلر (Compiler) یک برنامه‌ی رایانه‌ای است که سورس کد نوشته شده به یک زبان برنامه نویسی (زبان مبدأ) را به یک زبان دیگر (زبان مقصد) تبدیل می‌کند. البته معمولا این اصطلاح برای برنامه‌هایی به کار می‌رود که سورس کد یک زبان برنامه نویسی سطح بالا (نظیر C یا BASIC) را به سورس کد یک زبان سطح پایین‌تر (نظیر کد ماشین یا زبان اسمبلی) تبدیل می‌کنند.

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

زبان‌های کامپایلی یا کامپایل شده (Compiled Language) به نوعی از زبان‌های برنامه‌نویسی گفته می‌شود که سورس کد آن‌ها پیش از اجرا شدن باید کامپایل شود. در مقابل این زبان‌ها، سورس کدهای نوشته شده به زبان‌های تفسیری بدون نیاز به کامپایل شدن توسط برنامه‌هایی موسوم به مفسر (Interpreter) اجرا می‌شود. معمولا برنامه‌های نوشته شده به زبان‌های کامپایلی در هنگام اجرا سریعتر عمل می‌کنند چرا که لازم نیست سورس کد آن‌ها هنگام اجرا به زبان ماشین ترجمه شود.

انواع کامپایلرها

چه از نظر مفهوم و چه از نظر عملکرد، انواع مختلفی از کامپایلرها وجود دارد. برخی از کامپایلرها از برنامه‌های کوچکتری تشکیل شده‌اند که هرکدام مرحله‌ای از کامپایل را انجام می‌دهند. به این کامپایلرها چند گذره (Multi-pass Compiler) گفته می‌شود. ویژگی‌های برخی از زبان‌ها به گونه‌ای است که در مواردی هنگام کامپایل کردن، خواندن مجدد سورس کد در آن‌ها ضروری می‌باشد. در چنین موقعیت‌هایی نوع چندگذره با ایجاد خروجی‌های میانی نهایتا سورس کد نهایی را تولید می‌کند. برخی دیگر از کامپایلرها تنها در یک گذر و به طور کامل تمام سورس کد دریافتی از زبان مبدأ را به زبان مقصد تبدیل می‌کنند که به آن‌ها کامپایلر تک گذره (Single-pass Compiler) گفته می‌شود.

گونه‌ای از کامپایلرها که به محلی یا بومی (Native Compiler) مشهور هستند به شکلی طراحی می‌شوند که خروجی آن‌ها تنها روی همان پلتفرم (سیستم عامل و پردازنده‌ای) که کامپایلر در آن اجرا شده قابل اجرا هستند. در عوض، خروجی کامپایلرهای متقاطع (Cross Compiler) روی پلتفرم‌های مختلفی قابل اجراست.

کامپایلرهایی که زبان مبدأ و مقصد آن‌ها دو زبان تقریبا هم سطح (معمولا سطح بالا) هستند را کامپایلرهای Source to Source می‌نامند. برنامه‌ای که سورس کد یک زبان سطح پایین‌تر را به یک زبان سطح بالاتر ترجمه می‌کند نیز دیکامپایلر (Decompiler) نامیده می‌شود.

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

2 thoughts on “کامپایلر Compiler

  • احسان

    خوبه و ساده است
    آسون توضیح می دی برای کسی که می خواد تازه شروع کنه و اصطلاحات براش گنگه و هیچی نمیدونه خوبه مثل من
    پبشنهاد میکنم این ها رو به زبان ساده توضیح بده
    پیش پردازنده ، راهنمای پیش پردازنده ، کتابخانه ، ماکرو و میکرو
    هیچ کی اینهارو ساده توضیح نداده
    کلا اگر بتونی توضیح بدی وقتی یه برنامه ران میشه چه اتفاقی میفته چه مراحلی طی میشه و اون پشت پرده ی کامپیوتر که ما نمیبینیم چی داره میگذره به درک بهتر از برنامه نویسی کمک می کنه

    پاسخ دادن
    • امیرحسین شهسواری

      سلام؛
      ممنون از نظر ارزشمندتون
      حتما در برنامه آتی مون قرار می گیره

      پاسخ دادن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *