شاید بهتر باشد این موضوع را این چنین مطرح کنیم که تفاوت بین زبانهای برنامه نویسی مفسری با زبانهای کامپایلری چیست؟ در یک جمله باید گفت کار هر دو مدل این زبانها ترجمه و پردازش است! ولی هر کدام با روشی متفاوت این کار را انجام میدهند که مزایا و معایب خاص خود را دارند.
به طور کلی به زبان هایی تفسیرشونده یا Interpreted میگوییم که سورس کد آنها به صورت یکباره کامپایل (پردازش، ترجمه و اجرا) نمیشود بلکه هرخط از کد آن توسط برنامههای مفسر یا تفسیرکننده (Interpreter) به صورت خط به خط بررسی و سپس تفسیر و اجرا میشوند.
روش ترجمه و اجرای مفسر برای سورس کدی که مثلا در چهل خط نوشته شده است به این صورت است که خط اول آن را دریافت میکند و پس از ترجمه به زبان ماشین، در صورتی که آن خط از سورس بدون خطا اجرا شده باشد، به خط بعدی میرود و مقدار متغیر در آن خط را ذخیره میکند. این فرآیند را خط به خط انجام میدهد تا به صورت کامل تمام سورس کد آن را ترجمه و اجرا کند.
بهترین مثال برای درک نحوه کارکرد زبانهای مفسری ، در نظر گرفتن مربی خارجی زبان یک تیم فوتبال است که برای ارتباط با بازیکنان خود نیاز به یک مترجم فارسی زبان دارد. برای مثال مترجم کارلوس *******وش (مربی سابق تیم ملی) را در نظر بگیرید. زمانی که *******وش یک یا چند جمله کوتاه میگوید، مکث میکند تا مترجم آنها را دریافت و سپس ترجمه کند. زمانی که ترجمه آنها تمام شد منتظر میماند تا جملات جدید را از او دریافت و مجددا ترجمه کند. مفسرها هم به همین صورت عمل میکنند.
PHP یک زبان مفسری
همانطور که اشاره شد، زبان PHP به صورت مفسری کدها را ترجمه و اجرا میکند. زبانهای مفسری نسبت به زبانهای کامپایلری کندتر میباشند ولی در عوض عملیات دیباگ کردن یا خطایابی آنها راحتتر صورت میگیرد. از طرفی محصول نهایی زبانهای مفسری برخلاف زبانهای کامپایلری که یک خروجی واحد ارائه میدهند سورس کد نوشته شده است.
- ۰ ۰
- ۰ نظر