برنامه نویسی

تفاوت زبان های برنامه نویسی کامپایلری و مفسری

تا الان در مقاله‌‌‌‌های قبلی سایت در مورد کاربرد و حوزه اصلی زبان های برنامه نویسی زیاد صحبت کردیم اما تا به حال به شیوه‌ی کاری زبان های برنامه نویسی فکر کردید؟ زبانی که شما با آن کار می‌‌‌‌‌کنید از کدام نوع زبان های برنامه نویسی است؟ کدام ویژگی‌اش نسبت به دیگری برتری دارد؟

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

مطالعه کنید
انواع زبان های برنامه نویسی وب

زبان‌‌‌‌‌های کامپایلری (compiler)

کامپایلر کدهای موجود را به زبان میانی مثل اسمبلی ترجمه می‌‌‌‌کند و سپس به کدهای قابل فهم برای سیستم تبدیل می‌‌‌‌شود. این فرایند این امکان را فراهم می‌‌‌‌کند که کدها با یکبار کامپایل شدن در سیستم عامل هدف اجرا شوند و با توجه به کمتر شدن فرایند ترجمه سرعت بالاتری نسبت به زبان‌‌‌های مفسری دارند. در زبان‌‌‌‌های کامپایلری با توجه به ترجمه شدن کل کدها قبل از اجرای برنامه، اگر مشکلی در سینتکس یا مسائل فنی وجود داشته باشد برنامه به کلی اجرا نمی‌‌‌‌شود.

زبان‌‌‌‌های مفسری (Interpreter)

در این دسته‌‌‌‌بندی، کدهای برنامه به صورت خط به خط خوانده و ترجمه می‌‌شوند. این فرایند در هر بار اجرای برنامه انجام می‌‌‌‌شود. در این روش با توجه به نحوه ترجمه کدها اگر خطایی در برنامه وجود داشته باشد، برنامه تا زمان رسیدن به ارور به درستی کار می‌‌‌‌کند و در زمان رخداد ارور برنامه کرش (crash) می‌‌‌‌کند.

مطالعه کنید
برای جادی میرمیرانی...

تفاوت میان مفسری و کامپایلری

  • وابستگی به سیستم عامل

زبان‌‌‌های مفسری برای هربار اجرا شدن به مفسر برای خواندن و ترجمه کردن کدها احتیاج دارند. اما کامپایلری بعد از خواندن تمامی کدها فایل exe می‌‌‌سازد که توانایی اجرا شدن در هر دستگاهی که به سیستم عامل هدف مجهز باشد را دارد اما این مزیت زبان‌‌‌‌های کامپایلری نیست. زبان‌‌‌های کامپایلری فقط در سیستم عاملی که تعریف شده توانایی کارکرد دارند اما زبان‌‌‌‌های مفسری در هر دستگاهی که مفسر وجود داشته باشد توانایی کارکرد دارند.

  • میزان استفاده از منابع سیستم عامل

زبان‌‌‌‌های مفسری با توجه به اینکه باید خط به خط برنامه را در هربار اجرا کردن ترجمه کنند، منابع بیشتری از سیستم را اشغال می‌‌‌کنند و سرعت پایین‌‌‌‌تری در زمان اجرا (Run Time) نسبت به زبان‌‌‌‌‌های کامپایلری دارند.

  • دیباگینگ (خطایابی)

یک بار خواندن برنامه برای اجرا در زبان‌‌‌‌‌های کامپایلری تا الان یه مزیت محسوب میشد اما در زمان دیباگینگ ورق برمی‌‌‌‌گردد. زبان‌‌‌‌های مفسری با توجه به ترجمه خط به خط در صروت بروز مشکل می‌‌‌‌توانند برنامه نویس را بهتر برای حل مشکل راهنمایی کنند اما در کامپایلری باید کدها از بالا بررسی شوند تا مشکل پیدا و رفع شود. اگر بخواهیم برای هر دسته‌‌‌‌بندی مثال‌‌‌‌های بزنیم می‌‌‌‌توانیم به پایتون (Python) ، جاوااسکریپت (JavaScript) ، پی اچ پی (PHP) ، روبی (Ruby) برای دسته‌‌‌‌بندی زبان‌های مفسری و به سی شارپ (#C) ، جاوا (Java) ، سی پلاس پلاس (++C) ، اسکالا (Scala) برای زبان‌های کامپایلری اشاره کنیم.

مطالعه کنید
پایتون چیست و چه کاربردهایی دارد؟

اما حرف آخر…

زبان‌های مفسری توان بیشتری از سیستم می‌‌‌گیرند اما در هم سیستم عاملی که مفسر داشته باشند قابل اجرا هستند اما کامپایلرها فقط در سیستم عاملی که تعریف شده است قابل اجرا هستند ولی از طرف دیگر توان کمتری از سیستم می‌‌‌‌گیرند. در انتخاب زبان برنامه نویسی به مسائلی مثل کامپایلری یا مفسری توجه زیادی نکنید و معیارهای خود را نسبت به علاقه و بازار هدف مشخص کنید.

مطالعه کنید
دوره منتورشیپ برنامه نویسی

امتیاز بده!

۵ ستاره یادت نره

امتیاز کاربر: ۴.۶۹ ( ۱۶ نتایج)

امیرحسین قربان حسینی

برای ساخت دنیایی هوشمندتر و به‌روزتر، با انگشتانم میلیون‌ها خط کد زدم و برنامه‌نویسی کردم و این راه همچنان ادامه داره...

‫۷ دیدگاه ها

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

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

دکمه بازگشت به بالا