تا الان در مقالههای قبلی سایت در مورد کاربرد و حوزه اصلی زبان های برنامه نویسی زیاد صحبت کردیم اما تا به حال به شیوهی کاری زبان های برنامه نویسی فکر کردید؟ زبانی که شما با آن کار میکنید از کدام نوع زبان های برنامه نویسی است؟ کدام ویژگیاش نسبت به دیگری برتری دارد؟
زبان های برنامه نویسی در دو دستهبندی کامپایلری (compiler) و مفسری (Interpreter) تقسیمبندی میشوند. زمانی که زبان های برنامه نویسی در این دو دستهبندی قرار دارند در ماهیت وظیفه اصلی آنها تغییری ایجاد نمیشود. زبانهای برنامه نویسی باید مقادیر ورودی سطح بالا را به زبانهای سطح پایین برای درک سیستم تبدیل کنند. این فرایند در هر دو دستهبندی ثابت است اما نوع انجام این فرایند، زبانها را از هم جدا میکند.
زبانهای کامپایلری (compiler)
کامپایلر کدهای موجود را به زبان میانی مثل اسمبلی ترجمه میکند و سپس به کدهای قابل فهم برای سیستم تبدیل میشود. این فرایند این امکان را فراهم میکند که کدها با یکبار کامپایل شدن در سیستم عامل هدف اجرا شوند و با توجه به کمتر شدن فرایند ترجمه سرعت بالاتری نسبت به زبانهای مفسری دارند. در زبانهای کامپایلری با توجه به ترجمه شدن کل کدها قبل از اجرای برنامه، اگر مشکلی در سینتکس یا مسائل فنی وجود داشته باشد برنامه به کلی اجرا نمیشود.
زبانهای مفسری (Interpreter)
در این دستهبندی، کدهای برنامه به صورت خط به خط خوانده و ترجمه میشوند. این فرایند در هر بار اجرای برنامه انجام میشود. در این روش با توجه به نحوه ترجمه کدها اگر خطایی در برنامه وجود داشته باشد، برنامه تا زمان رسیدن به ارور به درستی کار میکند و در زمان رخداد ارور برنامه کرش (crash) میکند.
تفاوت میان مفسری و کامپایلری
- وابستگی به سیستم عامل
زبانهای مفسری برای هربار اجرا شدن به مفسر برای خواندن و ترجمه کردن کدها احتیاج دارند. اما کامپایلری بعد از خواندن تمامی کدها فایل exe میسازد که توانایی اجرا شدن در هر دستگاهی که به سیستم عامل هدف مجهز باشد را دارد اما این مزیت زبانهای کامپایلری نیست. زبانهای کامپایلری فقط در سیستم عاملی که تعریف شده توانایی کارکرد دارند اما زبانهای مفسری در هر دستگاهی که مفسر وجود داشته باشد توانایی کارکرد دارند.
- میزان استفاده از منابع سیستم عامل
زبانهای مفسری با توجه به اینکه باید خط به خط برنامه را در هربار اجرا کردن ترجمه کنند، منابع بیشتری از سیستم را اشغال میکنند و سرعت پایینتری در زمان اجرا (Run Time) نسبت به زبانهای کامپایلری دارند.
- دیباگینگ (خطایابی)
یک بار خواندن برنامه برای اجرا در زبانهای کامپایلری تا الان یه مزیت محسوب میشد اما در زمان دیباگینگ ورق برمیگردد. زبانهای مفسری با توجه به ترجمه خط به خط در صروت بروز مشکل میتوانند برنامه نویس را بهتر برای حل مشکل راهنمایی کنند اما در کامپایلری باید کدها از بالا بررسی شوند تا مشکل پیدا و رفع شود. اگر بخواهیم برای هر دستهبندی مثالهای بزنیم میتوانیم به پایتون (Python) ، جاوااسکریپت (JavaScript) ، پی اچ پی (PHP) ، روبی (Ruby) برای دستهبندی زبانهای مفسری و به سی شارپ (#C) ، جاوا (Java) ، سی پلاس پلاس (++C) ، اسکالا (Scala) برای زبانهای کامپایلری اشاره کنیم.
اما حرف آخر…
زبانهای مفسری توان بیشتری از سیستم میگیرند اما در هم سیستم عاملی که مفسر داشته باشند قابل اجرا هستند اما کامپایلرها فقط در سیستم عاملی که تعریف شده است قابل اجرا هستند ولی از طرف دیگر توان کمتری از سیستم میگیرند. در انتخاب زبان برنامه نویسی به مسائلی مثل کامپایلری یا مفسری توجه زیادی نکنید و معیارهای خود را نسبت به علاقه و بازار هدف مشخص کنید.
امتیاز بده!
۵ ستاره یادت نره
فوق العاده بودش در چند خط لب کلام رو بیان کردید
فوق العاده بود!
ممنونم بابت تهیه این مطلب مهندس
سلام
زبان اصلی که بقیه زبان ها از اون گرفته شدند چه زبانیه؟
درود و ارادت دوست عزیز
زبان برنامه نویسی اصلی، زبان برنامه نویسی C هستش
ممنونم از همراهیت
عالی بود
زبان پایتون چه نوع زبانیه؟
درود و وقت بخیر دوست عزیز
زبان برنامه نویسی پایتون چون اسکریپت سطح بالا هست در دسته مفسری قرار داره
برای اطلاعات بیشتر درمورد زبان برنامه نویسی پایتون، پیشنهاد میکنم مقاله زیر رو مطالعه کنی
پایتون چیست و چه کاربردهایی دارد