زبان مفسری و زبان کامپایلی چیست؟
زبان های برنامه نویسی از بعد اجرایی و ساخت به دو دسته اصلی تقسیم می شوند .
1- آنهایی که کامپایل می شوند
2- آنهایی که تفسیر می شوند
Compiler چیست؟
وقتی شما کدی را مثلا در سی شارپ یا جاوا می نویسید ، برای اینکه بتوانید این کد ا اجرا کنید ابتدا کد ها با یک ابزار بنام کامپایلر تبدیل می شوند . کامپایلر کدهای زبان برنامه نویسی سطح بالا را به کدی خوانا برای ماشین تبدیل می کند .
به عبارتی، برنامهای است که کدهای قابل خواندن توسط انسان را به زبانی که پردازندههای کامپیوتر قادر به درک آن باشند (یعنی کدهای باینری یا همان صفر و یک) تبدیل میکند.
فرآیند کامپایل فرآیندی نسبتاً پیچیده است که طی آن زمان بسیار زیادی صرف تجزیه و تحلیل و ترجمهٔ سورسکد به کدی قابل درک برای کامپیوتر میشود. به طور کلی، کامپایلرها سورسکد را میخوانند و یک کد قابلاجرا در خروجی تحویل میدهند. به عبارت دیگر، سورسکد نرمافزارهایی را که با یک زبان سطح بالا نوشته شدهاند به صفر و یکهایی تبدیل میکند که کامپیوتر قادر به درک آنها باشد. در واقع، کدی را که یک برنامهنویس مینویسد را به فرمتی خوانا برای CPU تبدیل میکند.
Interpreter چیست؟
Interpreter (مُفسِر) یک برنامهٔ کامپیوتری است که هر خط از دستورات یک زبان سطح بالا را به کد ماشین تبدیل میکند. Compiler و Interpreter هر دو کاری یکسان، یعنی تبدیل کدهای زبان سطح بالا به کد ماشین، انجام میدهند اما کامپایلر کد را پیش از اجرای برنامه به کد ماشین تبدیل میکند (یعنی یک فایل اجرایی همچون exe میسازد) در حالی که مفسر کد را حین اجرا به کد ماشین تبدیل میکند.
همانطور که پیش از این گفته شد، اینترپریتر سورسکد را خط به خط در حین اجرا ترجمه میکند به طوری که سورس یک برنامهٔ نوشته شده با زبانی سطح بالا را به طور کامل به زبان ماشین ترجمه میکند و این در حالی است که مفسر اجازه میدهد تا ارزیابی و اصلاح برنامه در حین اجرا (Run-time) صورت پذیرد. از زبانهای مفسری می توان پایتون ، پی اچ پی و جاوا اسکریپت را نام برد .
نیاز به توضیح نیست که پروسهٔ اینترپرت زمان نسبتاً کمتری در مقایسه با کامپایل صرف تجزیه و تحلیل و پردازش برنامه میکند اما در عین حال سرعت اجرای برنامه در مقایسه با زبانهایی که کدشان کامپایل میشود، نسبتاً کندتر است.
جدول مقایسه را در ادامه مطلب می توانید ببینید .