بعد از اینکه مقاله کامپایلر در برنامه نویسی چیست و بررسی انواع کامپایلر رو در سایت منتشر کردیم حال می خواهیم در این مقاله در مورد مفسر در برنامه نویسی صحبت کنیم و توضیحاتی در مورد آن ارائه دهیم یعنی به صورت کامل میخواهیم بگویم مفسر در برنامه نویسی چیست و چه کاربردی دارد. برای درک بهتر برنامه نویسی باید مبانی ابتدایی آن را بدانید و بعد شروع به یادگیری و آموزش برنامه نویسی کنید به این صورت خیلی راحتر جلو میرید و دچار مشکل خاصی نمی شوید.
مفسر در برنامه نویسی چیست
اگر بخواهیم واضح بگویم مفسر در برنامه نویسی چیست؟ مفسر یک برنامه کامپیوتری است که دستورهای نوشته شده در یک زبان برنامه نویسی را اجرا میکند. مفسر در واقع یک زبان برنامه نویسی سطح بالا را به یک زبان قابل فهم برای ماشین تبدیل می کند.
نکته مهم: در زبان های مفسری کد ها به صورت خط به خط تفسیر و اجرا می شوند و در اجرا بعدی برنامه نیز به همین صورت ادامه می یابد.
همینطور که می دانید هر دستگاه کامپیوتری (کامپیوترهای رومیزی، نوت بوک ها، گوشی های هوشمند، تبلت ها و …) از سخت افزار خاصی ساخته شده است که دارای قسمت های مختلفی از جمله پردازنده (Processor) است. حال اگر بخواهید برای این پردازنده برنامه ای بنویسید که این پردازنده کاری را انجام دهد باید دستورات زبان ماشین خاص آن پردازنده را یکجا نوشته و در یک فایل ذخیره کنید و برای اجرا آن فایل را یکباره به پردازنده بدهید تا اجرا کند.
چون نوشتن به زبان ماشین بسیار نیاز به حوصله و وقت دارد و اشکال زدایی (دیباگ) آن نیز کار پر مشقت و وقت گیر است معمولا از سایر زبان ها استفاده می کنند و آن زبان ها را با “برنامه های خاصی” به زبان ماشین تبدیل می کنند.
اگر آن برنامه خاص تبدیل دستورات به زبان ماشین را به جای یکباره و کامل به صورت دستور به دستور انجام دهد و همان لحظه دستور تبدیل شده (فقط و فقط همان دستور را) برای اجرا به پردازنده تحویل دهد و پس از اجرا دوباره دستور بعد را به زبان ماشین تبدیل کند و به پردازنده تحویل دهد و … این ماجرا تا به انتهای دستورات به صورت خط به خط تکرار شود و دستورات زبان ماشین توسط پردازنده فقط اجرا شوند و در فایلی ذخیره نشوند به آن برنامه خاص اینترپرتر یا مفسر می گویند.
در گذشته های دور نسخه های مختلف بیسیک جزو معروفترین زبان های اینترپرتری یا مفسری دنیا بودند نسخه هایی نظیر GWbasic و Basica و QBasic و …
بزرگترین مزیت اینترپرتر یا مفسر این است که برنامه نوشته شده اصلی وابستگی کمتری به نوع سخت افزار دارد. لذا برنامه ای که به زبان مفسر نوشته شود همانطور که می تواند روی یک کامپیوتر پردازنده اینتل اجرا شود می تواند بر روی یک تبلت با پردازنده آرم نیز اجرا شود یا روی یک موبایل یا یک اسباب بازی مدل.
تفاوت مفسر با کامپایلر
این دو در واقع یک کار را انجام میدهند ولی با هم یکسان نیستند و تفاوت هایی دارند. در مفسر کد ها خط به خط خوانده، برای کامپیوتر ارسال و اجرا می شود. اما کامپایلر تمام کد ها را یک باره ترجمه می کند و به صورت کامل در RAM نگه میدارد و شما میتوانید هر زمانی که خواستید کدهارا اجرا کنید.
تفاوت دیگر این دو، وابستگی به برنامه می باشد. برنامه یا کد های نوشته شده توسط یک زبان مفسری برای اجرا روی سیستم نیاز به نصب مفسر همان زبان روی سیستم را دارد. در غیر این صورت برنامه اجرا نمی شود. ولی کامپایلر برنامه را یک بار کامپایل می کند و بعد از آن دیگر نیازی به وجود همان کامپایلر روی سیستم نیست. خروجی یک برنامه نوشته شده با کامپایلر، فایل هایی هستند که روی هر سیستمی اجرا میشوند چه کامپایلر نصب باشد چه نباشد.
اما یک مشکل کامپایلر این است که به سیستم وابسته است. یعنی اگر سیستم عامل دستگاه عوض شود امکان اجرای آن برنامه وجود ندارد اما مفسر ها چون خط به خط کد ها را اجرا و ترجمه می کنند امکان استفاده روی سیستم های مختلف را دارند. برای رفع مشکل کدهای کامپایل شده باید آنها را روی سیستم جدید یکبار کامپایل کرد.
اینکه کدام یک برتری دارند به نویسنده برنامه بستگی دارد .اگر قابل حمل بودن اهمیت داشته باشد، مفسری بهتر است. در غیر این صورت اگر سرعت و درگیر نکردن CPU و RAM اهمیت دارد، کامپایلری بهتر است.
توجه: در آینده در مقاله ای جدا به صورت کامل تفاوت مفسر و کامپایلر رو به صورت کامل مورد بررسی قرار میدهیم.
چه زبان های برنامه نویسی، مفسری هستند؟
تعداد زیادی زبان برنامه نویسی داریم که مفسری می باشد. که در بخش زیر تعدادی از زبان های معروف که مفسر هستند رو لیست کرده ایم.
- پایتون
- جاوا اسکریپت
- بیسیک
- وی بی اسکریپت
- زبان PHP
- پرل
- روبی
- زبان Forth
- و …