زبان برنامه نویسی کامپایلری ( Compiler ) و مفسری ( Interpreter )
زبان برنامه نویسی مفسری چیست؟
شاید بهتر باشد این موضوع را این چنین مطرح کنیم که تفاوت بین زبانهای برنامه نویسی مفسری با زبانهای کامپایلری چیست؟ در یک جمله باید گفت کار هر دو مدل این زبانها ترجمه و پردازش است! ولی هر کدام با روشی متفاوت این کار را انجام میدهند که مزایا و معایب خاص خود را دارند.
به طور کلی به زبان هایی تفسیرشونده یا Interpreted میگوییم که سورس کد آنها به صورت یکباره کامپایل (پردازش، ترجمه و اجرا) نمیشود بلکه هرخط از کد آن توسط برنامههای مفسر یا تفسیرکننده (Interpreter) به صورت خط به خط بررسی و سپس تفسیر و اجرا میشوند.
روش ترجمه و اجرای مفسر برای سورس کدی که مثلا در چهل خط نوشته شده است به این صورت است که خط اول آن را دریافت میکند و پس از ترجمه به زبان ماشین، در صورتی که آن خط از سورس بدون خطا اجرا شده باشد، به خط بعدی میرود و مقدار متغیر در آن خط را ذخیره میکند. این فرآیند را خط به خط انجام میدهد تا به صورت کامل تمام سورس کد آن را ترجمه و اجرا کند.
بهترین مثال برای درک نحوه کارکرد زبانهای مفسری ، در نظر گرفتن مربی خارجی زبان یک تیم فوتبال است که برای ارتباط با بازیکنان خود نیاز به یک مترجم فارسی زبان دارد. برای مثال مترجم کارلوس کیروش (مربی سابق تیم ملی) را در نظر بگیرید. زمانی که کیروش یک یا چند جمله کوتاه میگوید، مکث میکند تا مترجم آنها را دریافت و سپس ترجمه کند. زمانی که ترجمه آنها تمام شد منتظر میماند تا جملات جدید را از او دریافت و مجددا ترجمه کند. مفسرها هم به همین صورت عمل میکنند.
درباره زبان برنامه نویسی C# بدانید !
زبان برنامه نویسی کامپایلری چیست؟
به زبان هایی کامپایل شده یا Compiled میگوییم که تمام سورس کد آنها به صورت یکباره کامپایل میشود و بعد از این عمل خروجی آنها به صورت یک نرم افزار مستقل در اختیار کاربر قرار میگیرد. در حقیقت کامپایلر کدهای نوشته شده توسط کاربر را بعد از تست، به کدهایی فشرده و قابل فهم برای سیستم تبدیل میکند که به صورت سریع اجرا میشوند.
در روش کامپایلری، برای مثال اگر سورس کدی در چهل خط نوشته شده باشد، تمام کدهای آن به صورت یکجا دریافت و ترجمه میشوند و در نهایت یک فایل خروجی به کاربر تحویل میدهد. برای اجرای خروجی زبانهای کامپایلری دیگر نیازی به اجرای مجدد این عملیات (کامپایل شدن) وجود ندارد. فایلهای با پسوند exe که حتما با آنها سر و کار داشته اید مثالی از خروجی زبانهای کامپایلری میباشند. سرعت زبانهای کامپایلری از زبانهای مفسری بیشتر است ولی از طرفی دیگر دیباگ و خطایابی آنها نسبت به زبانهای مفسری دشوارتر محسوب میشود.
اگر بخواهیم عملکرد زبانهای کامپایلری را در قالب یک مثال ساده بررسی کنیم، با فرض اینکه متنی که به زبان خارجی نوشته میشود کدهای برنامه نویسی باشند Google Translate بهترین مثال برای در نظر گرفتن است. در Google Translate همانطور که دیده اید ابتدا تمام جمله نوشته شده را دریافت میشود و سپس آن را به صورت یکباره ترجمه میکند و به کاربر تحویل میدهد که این فرآیند مشابه نحوه عملکرد زبانهای کامپایلری است.
دیدگاهتان را بنویسید