مهدی نظری
مهدی نظری
خواندن ۲ دقیقه·۵ سال پیش

همه چیز درباره interpreter و compiler مختصر و مفید

انتخاب یک زبان برنامه نویسی برای استفاده در یک برنامه به فاکتور های زیادی بستگی داره که یکی از این فاکتورها نحوه اجرای برنامه با توجه به منابع موجود و سیتم عامل مورد استفاده است. خطایابی، انعطاف پذیری، محبوبیت نزد برنامه نویس (developer experience) و سرعت اجرای برنامه ویژگی های دیگری هستند که در انتخاب زبان موثر هستند. بسیاری از این موارد مستقیما به نحوه اجرای کدها وابسته هستند.

زبان های برنامه نویسی از نظر نحوه اجرا به دو دسته تقسیم می شوند، زبان های تفسیری (interpreter) و زبان های ترجمه ای (compiler). در حقیقت هر دو روش گفته شده، زبان سطح بالا را به زبان قابل فهم برای ماشین (باینری) تبدیل می کنند.

از زبان های کامپایلری می توان به c, c++, C#, cobol و visual basic اشاره کرد و python, javascript, php و ruby نمونه هایی از زبان های مفسری هستند.

مهم ترین تفاوت بین interpreter و compiler در این است که تفسیر و اجرای کد ها در زبان های interpreter خط به خط صورت می گیرد و این روند در اجراهای بعدی نیز به همین صورت انجام می شود ولی در زبان های کامپایلری کدها به صورت کامل ترجمه شده و دفعات بعدی برنامه از روی کد ترجمه شده اجرا می شود.

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

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

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


زبان های compilerزبان های interpreterتفاوت های زبان کامپایلری و مفسریتفاوت زبان compiler و interpreterزبان های کامپایلری و مفسری
یک دولوپر خسته که پایتون را دوست می دارد.
شاید از این پست‌ها خوشتان بیاید