هدف کلی از کامپایل کردن یا تفسیر زبان برنامهنویسی چیست؟
زبانهای برنامهنویسی که توسعه دهندهها با آن سر و کار دارند زبانهای سطح بالا هستند که باید به یک زبان سطح پایین تبدیل شود تا برای ماشین قابل فهم باشد.
منظور از مفسری بودن زبان برنامهنویسی چیست؟
برای این که به زبانهای برنامهنویسی مفسری برسیم باید به این سوال پاسخ دهیم که مفسر یا Interpreter چیست؟
مفسر یک برنامه رایانه ای است که کدهای نوشته شده به زبانهای سطح بالا را به زبان اسمبلی یا زبان سطح پایین قابل فهم برای ماشین تبدیل میکند. مفسر کدهای برنامه را خط به خط میخواند و اجرا میکند. هنگامیکه خط قبلی در حال اجراست مفسر به تفسیر خط بعدی میپردازد تا به نوبت خطوط بعدی را اجرا کند.
منظور از کامپایلری بودن زبان برنامهنویسی چیست؟
کامپایلرها (Compiler) انواع مختلفی دارند که هر کدام برای مورد خاصی کاربرد دارد. شرکتهای مختلف مطابق استاندارد جهانی به تولید کامپایلرها میپردازند. بیشتر کامپایلرها برای تبدیل زبان برنامهنویسی سطح بالا به زبان برنامهنویسی سطح پایین کاربرد دارند اما بعضی از کامپایلرها نیز برای تبدیل زبان برنامهنویسی سطح پایین به زبان برنامهنویسی سطح بالا به کار میروند. اما مهم ترین کاربرد کامپایلرها همان ترجمه کدهای نوشته شده توسط توسعه دهندهها و اجرای آنهاست.
عملکرد کامپایلرها شبیه به ساز و کار مفسرها نیست. کامپایلرها به صورت خط به خط به ترجمه کدها نمیپردازند بلکه کل برنامه را باهم و یک باره ترجمه میکنند.
کامپایلرها سریع نر از مفسرها هستند.
مفسرها کدهای نوشته شده توسط برنامهنویس را به صورت خط به خط اجرا میکنند. در واقع بعد از اجرای خط اول به سراغ تفسیر و اجرای خط بعد میروند، از این رو کامپایلرها که کل کدها را با هم ترجمه میکنند سریع تر از مفسرها هستند.
مفسرها CPU و RAM اشغال میکند.
همانطور که گفتیم ساز و کار مفسرها و کامپایلرها باهم متفاوت است. کامپایلرها کل کد را باهم کامپایل میکند در حالی که مفسرها خط به خط این کار را انجام میدهند و این باعث میشود CPU و RAM اشغال کند، این در حالی است که کامپایلرها چنین مشکلی ندارند.
ایرادیابی مفسر ساده تر است.
مفسرها کدها را خط به خط تفسیر و اجرا میکند. اگر خطی مشکل و باگ داشت به خط بعد نمیرود و این باعث میشود برنامهنویس متوجه شود مشکل برنامه در کدام خط نهفته است. در حالی که کامپایلرها کل کد را باهم ترجمه میکنند و اکر مشکلی وجود داشته باشد توسعه دهنده باید کل کدها را بررسی کند تا متوجه مشکل موجود شود. این ویژگی دیباگ کردن برنامههای نوشته شده با زبانها مفسری را ساده تر میکند.
زبانها کامپایلری به سیستم عامل وابستگی دارند.
یکی از مزایای زبانهای برنامهنویسی مفسری این است که به سیستم عامل وابستگی ندارند، در مقابل برنامه نوشته شده با زبانهای کامپایلری برای اجرا در سیستم عامل جدید باید کد را تغییر داده و دوباره کامپایل شوند.
برنامههای مفسری به مفسر وابسته هستند.
تفاوت دیگر برنامههای مفسری و کامپایلری در این است که برنامههای مفسری برای اجرا نیاز به مفسر دارند در حالی که برنامههای کامپایلری یک بار توسط کامپایلر کامپایل میشوند و از آن به بعد برای اجرا نیازی به کامپایلر ندارند. در واقع کافی است یک بار کد نوشته شده توسط زبانهای کامپایلری کامپایل شود تا از آن به بعد بدون نیاز به وجود کامپایلر تنها با وجود فایل کامپایل شده اجرا شود.
نمونههایی از زبانهای برنامهنویسی مفسری
جاوااسکریپت، بیسیک، پایتون، List، Matlab، PHP، Perl، Forth، روبی و ... معروف ترین زبانهای برنامهنویسی مفسری هستند.
نمونههایی از زبانهای برنامهنویسی کامپایلری
ویژوال بیسیک، ویژوال سی شارپ، ویژوال سی پلاس پلاس، توربو پاسکال و... معروف ترین زبانهای کامپایلری هستند.
جمع بندی
به طور خلاصه وجه مشترک کامپایلرها و مفسرها تبدیل زبان برنامهنویسی سطح بالا به زبان قابل فهم برای ماشین است. اجرای زبانها مفسری کندتر است ولی خطایابی آنها ساده تر میباشد. در مقابل کامپایلرها مانند زبانهای مفسری که به مفسر وابسته اند به کامپایلر وابستگی ندارند. زبانهای مفسری به سیستم عامل وابستگی ندارند اما کدهای نوشته شده با زبانهای کامپایلری برای اجرا در سیستم عامل جدید باید کجدد نوشته و کامپایل شوند.
نظر دهید
با استفاده از فرم نظردهی زیر به بهبود خدمات کمک کنید.