مفسر در برنامه نویسی چیست؟
10 شهریور 1401 1401-07-28 11:45مفسر در برنامه نویسی چیست؟
مفسر در برنامه نویسی دارای بخشهای بسیاری است که افراد در روند پیادهسازی برنامه با آنها رو به رو میشوند. مفسر (Interpreter) یکی از این بخشها به شمار میرود. مفسر نرم افزاری برای پیادهسازی مستقیم دستورالعملهای برنامه است که در بسیاری از زبانهای برنامه نویسی سطح بالا (نزدیک به زبان انسان) مورد استفاده قرار میگیرد.
انجام وظیفه مفسر برای پیادهسازی و اجرای کدهای برنامه ضروری است. در این نوشتار به این سوال پاسخ داده شده است که مفسر در برنامه نویسی چیست و سایر نکات و مباحث مهم پیرامون مفهوم مفسر و تفاوت آن با «کامپایلر» (Compiler) و دیگر نرم افزارهای مشابه شرح داده شدهاند.
در ادامه این مقاله از تدریس24 همراه ما باشید.
مفسر در برنامه نویسی چیست ؟
مفسر در برنامه نویسی مفسر یک نرم افزار کامپیوتری است که هر «عبارت» (گزاره | Statement) یا همان «خط کد» برنامه زبانهای سطح بالا را به کدهای قابل خواندن برای ماشین تبدیل میکند. این کدها شامل «کدهای منبع» (Source Code)، کدهای از قبل کامپایل شده و اسکریپتها میشوند. «کامپایلر» و مفسر هر دو هدف مشترکی دارند و آن هم تبدیل برنامههای نوشته شده با زبانهای سطح بالا به کدهای ماشین است.
مفسر یا همان Interpreter کدهای زبان سطح بالا را به زبانی میانی تبدیل میکند. همچنین این نرم افزار میتواند کدهای منبع سطح بالا را تجزیه کند و سپس دستورات را به طور مستقیم انجام دهد، در این حالت دستورات خط به خط یا عبارت به عبارت اجرا میشوند.
انسانها فقط زبانهای سطح بالا را درک میکنند، به کدهای این زبانها، کدهای منبع گفته میشود. از طرف دیگر، کامپیوترها تنها برنامههای نوشته شده توسط زبانهای دودویی یا باینری را متوجه میشوند. به همین دلیل در برنامه نویسی به یک کامپایلر یا مفسر نیاز است که کدهای سطح بالا را به کدهای سطح پایین تبدیل کند.
مفسر در برنامه نویسی زبانهای برنامه نویسی با دو روش کامپایلری یا تفسیری پیادهسازی میشوند. همانطور که از نام کلمه مفسر مشخص است، این نرم افزار کدهای سطح بالا را به کدهایی تفسیر یا تبدیل میکند که برای ماشین قابل درک باشند یا آنها را به کدهای زبان میانی تبدیل یا تفسیر میکند که به راحتی پیادهسازی شوند.

مفسر در برنامه نویسی چیست ؟
مفسر در برنامه نویسی مفسر هر گزاره یا همان عبارت از کدها را میخواند و سپس آنها را به طور مستقیم پیادهسازی میکند. «اسمبلر» (Assembler) یا کامپایلر کدهای منبع سطح بالا را به کدهای محلی یا کامپایل شدهای تبدیل میکنند که به طور مستقیم توسط سیستم عاملها با ایجاد فایل برنامه با پسوند .exe پیادهسازی میشوند. کامپایلرها و مفسر در برنامه نویسی دارای مزایا و معایب مختلفی هستند. بیشتر اوقات میتوان از آنها به جای یکدیگر استفاده کرد زیرا اکثر محیطهای توسعه یکپارچه هم از مفسر و هم از کامپایلر برای زبانهای برنامه نویسی سطح بالا استفاده میکنند.
کامپایلرها باید «کدهای شی» (Object Code) میانی تولید کنند که برای اتصال نیازمند فضای حافظه بیشتری هستند، در مقابل مفسرها از حافظه به طور موًثرتر و بهینهتر استفاده میکنند. از آنجایی که مفسر، کدها را در یک پردازش تکی کوچک میخواند و سپس پیادهسازی میکند، برای اسکریپت نویسی و برنامههای کوچک دیگر بسیار مفید است.
به همین دلیل، این نرم افزار معمولاً روی سرورهای وب نصب میشود تا اسکریپتهای قابل اجرا آنها را پیادهسازی کند. همچنین در مرحله توسعه برخی از برنامهها که نیاز به پیادهسازی بخشهای کوچکی از کدها وجود دارد، از مفسر استفاده میشود و به جای کامپایل کردن کل برنامه، هر بار یکی از بخشهای برنامه به صورت یک به یک پیادهسازی خواهند شد.
مفسر در برنامه نویسی با استفاده از مفسر، هر عبارت کدهای منبع به صورت خط به خط پیادهسازی میشوند و این روش برای اشکالزدایی و بررسی دلیلهای ایجاد خطا بسیار کاربردی است. همچنین مفسرها برای هدفهای آموزشی نیز مورد استفاده قرار میگیرند؛ زیرا با استفاده از آنها میتوان نحوه برنامه نویسی یک عبارت را به دانشجو آموزش داد. در بخش بعدی از این مقاله به شرح و بررسی «مترجم» (Translator) در برنامه نویسی پرداخته شده است.
تفاوت مفسر با کامپایلر
مفسر در برنامه نویسی این دو در واقع یک کار را انجام میدهند ولی با هم یکسان نیستند و تفاوت هایی دارند. در مفسر کد ها خط به خط خوانده، برای کامپیوتر ارسال و اجرا می شود. اما کامپایلر تمام کد ها را یک باره ترجمه می کند و به صورت کامل در RAM نگه میدارد و شما میتوانید هر زمانی که خواستید کدهارا اجرا کنید.
تفاوت دیگر این دو، وابستگی به برنامه می باشد. برنامه یا کد های نوشته شده توسط یک زبان مفسری برای اجرا روی سیستم نیاز به نصب مفسر همان زبان روی سیستم را دارد. در غیر این صورت برنامه اجرا نمی شود. ولی کامپایلر برنامه را یک بار کامپایل می کند و بعد از آن دیگر نیازی به وجود همان کامپایلر روی سیستم نیست. خروجی یک برنامه نوشته شده با کامپایلر، فایل هایی هستند که روی هر سیستمی اجرا میشوند چه کامپایلر نصب باشد چه نباشد.
اما یک مشکل کامپایلر این است که به سیستم وابسته است. یعنی اگر سیستم عامل دستگاه عوض شود امکان اجرای آن برنامه وجود ندارد اما مفسر ها چون خط به خط کد ها را اجرا و ترجمه می کنند امکان استفاده روی سیستم های مختلف را دارند. برای رفع مشکل کدهای کامپایل شده باید آنها را روی سیستم جدید یکبار کامپایل کرد.
چرا مفسر در برنامه نویسی کندتر از بقیه نرم افزارهای مشابه است؟
مفسر در برنامه نویسی در بیشتر موارد، برای هدف تبدیل کدهای سطح بالا به کدهای ماشین از کامپایلر استفاده میشود، زیرا رویکردی که برای پیادهسازی عملیات تبدیل در کامپایلر مورد استفاده قرار میگیرد در مقایسه با تفسیر خط به خطی که در مفسر انجام میشود سریعتر است. مفسر به جای ترجمه کلی کدها و تبدیل آنها به کدهای قابل درک برای ماشین، آنها را به صورت خط به خط تفسیر و ترجمه میکند و این موضوع زمان بیشتری میگیرد.
اگر حجم کدهای منبع زیاد باشد، زمان اجرا برای یک مفسر نسبتاً کندتر از کامپایلر خواهد بود. اما در مفسر به دلیل اینکه تفسیر در هر خط یا عبارت انجام میشود، میتوان آن را در میانه پیادهسازی متوقف کرد تا امکان اصلاح یا اشکلزدایی کدها وجود داشته باشد. در بخش بعدی از مقاله «مفسر در برنامه نویسی چیست» به بررسی نقش مفسر در برنامههای نوشته شده پرداخته شده است.
نقش مفسر در برنامه نویسی چیست ؟
مفسر در برنامه نویسی دارای نقشهای مهمی است که در ادامه این بخش به برخی از آنها اشاره میشود:
مفسر کدهای منبع را خط به خط در «زمان اجرا» (Runtime) به کدهای ماشین تبدیل میکند و سپس پیادهسازی کدها را انجام میدهد.
مفسر یک برنامه نوشته شده به زبان سطح بالا را به طور کامل به زبانی در سطح ماشین تبدیل میکند.
مفسر امکان محاسبه و اصلاح برنامه را در زمان اجرا فراهم میکند.
مفسر در برنامه نویسی با استفاده از مفسر نسبتاً زمان کمتری برای تجزیه و تحلیل و همچنین پردازش برنامه صرف میشود.
اجرای برنامه با مفسر در مقایسه با کامپایلر نسبتاً کندتر است.
مفسر در برنامه نویسی بخش بعدی از مقاله «مفسر در برنامه نویسی چیست» پس از معرفی مجموعه دورههای آموزش برنامه نویسی فرادرس به بررسی انواع گوناگون مفسرها در برنامه نویسی اختصاص داده شده است.
پست های مرتبط
VDI چیست و چه کاربردی دارد؟
مزایا و معایب اس ام اس مارکتینگ چیست؟
فریم ورک چیست؟
توپولوژی مش چیست؟
دلایل عدم اتصال دامنه جدید به هاست چیست؟
اعضا
-
Active ماه 5, 2 هفته قبل
-
Active ماه 9, 3 هفته قبل
-
Active ماه 9, 3 هفته قبل
-
Active ماه 11 قبل
-
Active 1 سال, ماه 1 قبل
بروز رسانی
سمیرا مردانی's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل
محمد جواد محمدی's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل
مریم نوری's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل
محمد امین طاهری's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل
نگار حجتی's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل