Compiler vs. Interpreter
برای معرفی بهتر هر دو موضوع، ابتدا به شباهت و تفاوت آنها میپردازیم.
شباهت
هر دو، وظیفه تبدیل کد سطح بالا(مانند کد نوشته شده به زبان PHP یا #C) به کد ماشین را دارند.
تفاوت
کامپایلر، به صورت یکجا، عمل تبدیل کد را انجام میدهد ولی Interpreter(در زبان فارسی، مفسر گفته میشود.) به صورت خط به خط، این فرآیند را صورت میدهد.
به زبانهایی که با مفسر به کد ماشین تبدیل میشوند، زبانهای مفسری میگویند. به عنوان مثال PHP، Python و JavaScript از معروفترینِ آنها میباشند.
از سوی دیگر، به زبانهای که با کامپایلر به کد ماشین تبدیل میشوند، زبانهای کامپایلری میگویند. زبانهای ++C ،C و Go نمونههایی از آن هستند.
مزایای زبان مفسری
تبدیل سریع کد
برخلاف زبانهای کامپایلری، نیاز به زمان طولانی جهت تبدیل کل کد به کد ماشین وجود ندارد و به سرعت، هر خط، اجرا میشود.
دیباگ راحت
با توجه به اینکه اجرای کد به صورت خط به خط صورت میگیرد، پیدا کردن مشکل نیز راحتتر خواهد بود.
معایب زبان مفسری
نیاز به نصب مفسر
برای اجرا، باید مفسر بر روی سیستم نصب باشد.
کندی در اجرای کد
به دلیل اینکه کدها در هربار اجرا، به صورت خط به خط تبدیل میشوند، این تکرار باعث کندی میشود.
کدها قابل مشاهده هستند
کدها در هنگام اجرا، به صورت کامل، توسط مفسر، قابل مشاهده هستند.
مزایای زبان کامپایلری
بهینهسازی برنامه
در زبانهای کامپایلری چون کل کد به صورت یکجا به زبان ماشین تبدیل میشود، قابلیتهای بهینهسازی خودکار بیشتری، در اختیار کامپایلر قرار میدهد.
سرعت اجرای برنامه
چون برنامه به صورت یکجا به کد ماشین تبدیل شده است، نسبت به زبانهای مفسری که در هر بار اجرا، این فرآیند به صورت خط به خط انجام میشود، سرعت اجرا بیشتر خواهد بود.
معایب زبان کامپایلری
زمان طولانیتر برای مشاهده خروجی
در زبانهای کامپایلری چون باید کل کد تبدیل شود تا خروجی، قابل مشاهده گردد، زمان مشاهده خروجی طولانیتر خواهد بود.
تشخیص خطای ضعیفتر
تشخیص برخی از خطاها که به قواعد کدنویسی و… مربوط نیستند و مربرط به زمان اجرا هستند برای کامپایلر، دشوار بوده و پیدا کردن این نوع خطاها و دیباگ کردن آنها کار پیچیدهای خواهد بود.
وابستگی به پلتفرم
زبانهای برنامهنویسی به پلتفرمی که روی آن کامپایل شدهاند، وابستگی دارند. یعنی کد ماشینی که حاصل از کامپایل یک کد بر روی یک پلتفرم(مثلاً روی ویندوز) است، قابل استفاده در پلتفرم دیگر(مثلاً اوبونتو) نمیباشد و میبایست بر روی آن پلتفرم، دوباره کامپایل شود.
دیدگاهتان را بنویسید