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

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

حال با ۲ تعریف ساده که بالا کردیم میشه نتیجه گرفت که برنامه هایی که با زبان کامپایلری نوشته شده اند سریعتر از مفسری هستند، چون یک بار ترجمه می شوند و بار ها اجرا می شوند ولی زبان مفسری برنامه هر بار که اجرا می شود خط به خط باید به کد ماشین تبدیل شود و خود این یک امتیاز منفی حساب می شود که جدا از اجرای کندتر، منابع سخت افزاری بیشتری را اشغال می کند..
نکته دیگری که در زبان مفسری می باشد این است اگر برای مثال برنامه ایی با زبان پایتون نوشته شود برای اجرای آن در سیستم دیگر نیاز است خود سورس و مفسر مورد نظر مانند پایتون نیز در سیستم مقصد نصب باشد.
ولی در زبان کامپایلری چنین چیزی نیست فقط برنامه را کامپایل کرده و فایل ترجمه شده را در سیستم مقصد نیاز به اجرا است.
مزیتی که زبان مفسری دارد یکی در خطایابی یا همان Debug کردن کد می باشد. به دلیل ابنکه خط به خط اجرا می شود، می توان در زمان اجرا کد را تغییر داد و خروجی گرفت ولی در زبان کامپایلری باید اول کد ها نوشته شوند و بعد از ترجمه کدها برنامه را اجرا کرد و خطایابی کرد.
عالی بود