الفرق بين الـscripting languages و الـProgramming Languages

ManMhd

ما الاشياء التي تجعل PHP أن تكون scripting Language و التي تجعل C++ أن تكون Programming Languages

بحثت كثيراً على الانترنت عن هذا الموضوع و بحثت في المواقع المتخصصة مثل stackoverflow وجدت أن هذا السؤال طرح كثيراً ... و كانت الاجابات متشابهة بشكل يجعلك تعتقد أنه نسخ من موقع و لصق في آخر...

من جهة أخرى لغتي الانكليزية لم تسفعني في فهم بعض المصطلحات .....

هل من مجيب


14

صيغة السؤال نفسها خاطئة, لغات البرمجة Programming languages هى الفئة الكبيرة التى تنقسم إلى فئتين هما اللغات المترجمة Compiled languages و اللغات المفسرة Interpreted languages.

فى كل الحالات أنت تكتب كودا برمجيا بغض النظر عن محتواه و عن إمكانيات اللغة التى تكتب بها, الفارق يأتى فيما ستفعله بالكود. فى اللغات المترجمة ستأخذ الكود و تستخدم مترجم اللغة ليترجمه مرة واحدة إلى ملف أو ملفات يفهمها الحاسب و هذة الملفات هى ما ستعطيه لعملائك. عند العميل سيقوم بتشغيل برنامجك مباشرة دون الحاجة الى مترجم لأنك أعطيته نسخة مفهومة لدى الحاسب و جاهزة للتشغيل.

اللغات المفسرة تختلف فى أنك ستعطى العميل نسخة من البرنامج لا يفهمها الحاسب مباشرة و بالتالى هو سيحتاج معها إلى مفسر اللغة. عندما يشغل العميل برنامجك سيعمل مفسر اللغة على تحويل البرنامج إلى الصيغة التى يفهمها الحاسب.

اللغات المترجمة قد تكون أسرع لانها لا تتطلب وقتا عند العميل لترجمتها فى كل مرة يريد أن يشغلها فيها.

يمكنك الاستزادة من هذا الرابط:

شكراً على التصحيح :)

وبناء على المقالة المذكورة ينبغي إدراج لغة كالجافا في صنف ثالث يحمل -بنظري- مساوئ الصنفين الرئيسيين!

الجافا صنعت كلغة مفسرة حيث تتم ترجمتها الى صيغة وسيطة تسمى ال Byte code لا تفهمها أنت و لا الجهاز و بالتالى تحتاج الى المنصة التخيلية للجافا java virtual machine لتشغيل البرنامج. هذا بالضرورة ليس جمعا لمساوئ النوعين و ليس نوعا ثالثا. الجافا ما زالت مفسرة لأنها تحتاج مفسر عند تشغيل البرنامج. و هناك مزايا من عملية التحويل الوسيطة الى Byte code:

1- الكود الذى قمت أنت بكتابته لن ينقل للعميل و بالتالى فهو محمى لا يعرفه غيرك.

2- البرنامج مازال يمكنه العمل على أكثر من نظام تشغيل لأنه عند ترجمته لم يترجم إلى نظام بعينه.

و بالمناسبة الجافا رغم كونها لغة مفسرة بالأساس إلا أنه يتوفر مترجمات لها لتحويلها إلى الصيغة التى يفهمها الجهاز مباشرة دون الحاجة لوجود المفسر عند العميل فيما يسمى بال Native compilation. قد يصبح برنامجك أسرع إن قمت بهذا و لكنك ستفقد بعض المزايا كأن تعمل نفس النسخة من البرنامج على أكثر من نظام تشغيل.