Interpreter یا مفسر در برنامه نویسی چیست؟

مفسر یا Interpreter در برنامه نویسی چیست؟

برنامه هایی که ما میسازیم معمولا به دو روش برای CPU ترجمه میشوند: یا توسط کامپایلر یا توسط مفسر (Interpreter). در این مقاله میخواهیم به نحوه کار کردن زبان های مفسری و تفاوت هایی که با کامپایل کردن دارد بپردازیم. با برنامه چی برای آشنایی با مفسر ها همراه باشید.

در این مقاله موارد زیر بررسی میشوند:
مفسر یا Interpreter چیست؟
کامپایلر و Interpreter چه تفاوت ها و شباهت هایی دارند؟
چرا برنامه های تفسیر شده (Interpreted) کندتر هستند؟
آیا زبان های تفسیر شده محدودیتی دارند؟
منابع بیشتر برای مطالعه


مفسر یا Interpreter چیست؟

یکی از راه هایی که میتوانید کدهایی که نوشته شده اند را به دستورات قابل فهم و اجرا برای CPU تبدیل کنید، این است که از یک مفسر یا Interpreter استفاده کنید. Interpreter که در زبان فارسی به آن مفسر میگوییم، یک برنامه است که کدها را میخواند و اجرا میکند. این کدها شامل Source Code (کد منبع)، کد کامپایل شده و اسکریپت ها میشود.

مفسر های معروف شامل Perl، Python و Ruby میشوند که زبان های برنامه نویسی Perl، Python و Ruby را اجرا میکنند.


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

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

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

هر قسمتی از کد که توسط مفسرها خوانده میشود، بلافاصله اجرا میشود. بنابراین از یک Compiler سریعتر شروع به کار میکند. پس از Interpreter در توسعه نرم افزار، معمولا برای Debug کردن یا اشکال زدایی برنامه ها استفاده میشود چون میتواند یک خط یا یک قسمت از برنامه ای که نوشته ایم را بصورت جداگانه اجرا کند.

کامپایلر اینگونه کار میکند که همه کد را یکباره ترجمه میکند و سپس CPU آنها را اجرا میکند. اگر برنامه ما بعد از کامپایل شدن تغییر کند، باید دوباره کامپایلر آن را ترجمه بکند تا تغییرات جدید هم به کدهای قبلی (که به زبان ماشین ترجمه شده بود و CPU اونها رو اجرا میکرد)، اضافه بشوند. یا به عبارت دیگر کل برنامه دوباره باید کامپایل بشود.


چرا برنامه های تفسیر شده (Interpreted) کندتر هستند؟

ولی این نکته را بدانید هرچند Interpreter نیاز ندارد همه برنامه را کامپایل کند تا بعد از آن دستورات اجرا بشوند و برنامه شروع به کار بکند، اما یک برنامه که تفسیر شده است در مقایسه با یک برنامه که کامپایل شده بسیار کندتر میباشد. چون برای هربار اجرا شدن لازم دارد که خط به خط دوباره کدها را بخواند و برای CPU ترجمه کند. همین روند باعث کند تر شدن برنامه های تفسیر شده (Interpreted) میشود.


آیا زبان های تفسیر شده محدودیتی دارند؟

هرچند مفسر ها برای برنامه های کوچک دارای مزیت هایی میباشند، اما زبان های مفسری نیز محدویت هایی دارند. مهمترین آنها این است که کدهای تفسیر شده نیاز به یک Interpreter دارند که باید اجرا بشود. اگر مفسر اجرا نشده باشد، برنامه ما فقط به عنوان یک متن ساده شناخته میشود، نه دستورات قابل اجرا.

محدودیت های زبان های مفسر دار

علاوه بر اینها، برنامه هایی که تفسیر میشوند، ممکن است نتوانند از عملکرد های سیستم استفاده کنند یا به منابع سخت افزاری دسترسی داشته باشند، همانطور که برنامه های کامپایلری دسترسی دارند. به همین دلیل بیشتر اپلیکیشن ها با استفاده از کامپایلر نوشته میشوند.

البته مفسر یا Interpreter در جاهایی که سرعت اهمیت زیادی ندارد، میتوانند کارآمدی خوبی داشته باشند (مثلا اشکال یابی یا تست نرم افزار).


منابع بیشتر برای مطالعه

برای مطالعه بیشتر درباره Interpreter میتوانید از منابع زیر استفاده کنید:

اگر شما هم درباره مفسر ها در برنامه نویسی اطلاعاتی دارید، میتوانید با نوشتن آنها در قسمت نظرات (همین پایین) این مقاله آموزشی را کامل تر نمایید.

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

دیدگاه‌ خود را بنویسید

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

اسکرول به بالا