لغة مفسرة

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

في البرمجة، لغة البرمجة المفسرة (بالإنجليزية: Interpreted Language) هي لغة البرمجة التي لا تترجم البرامج المكتوبة بها إلى لغة الآلة الخاصة بالمعالج، ولكنها تحتاج أن تُفسر باستخدام برنامج يدعى المفسر لتنفيذ البرامج المكتوبة بها. نظرياً، يمكن لأي لغة برمجة أن تكون مترجمة أو مفسرة، ولذا فالتفرقة بين اللغات المترجمة والمفسرة هي فقط حسب الطريقة الشائعة مع تلك اللغات، وليس ذلك بسبب خاصية داخلية في اللغة نفسها.

العديد من لغات البرمجة يمكنها العمل بالمفسرات وبالمترجمات، مثل ليسب، باسكال، سي، بيسيك وبايثون. بينما جافا مثلاً تُحول إلى صيغة يُفترض أن تٌفسر، لكن تستخدم الترجمة في الوقت المناسب لتحويل تلك الصيغة إلى لغة آلة. أما لغات الدوت نت فهي عادةً تترجم إلى اللغة الوسيطة المشتركة (بالإنجليزية: CIL) والتي تترجم عادة إلى لغة الآلة، ولكن مع ذلك توجد آلات افتراضية قادرة على تفسير اللغة الوسيطة المشتركة. العديد من تنفيذات ليسب تجمع ما بين الكود المترجم والمفسر.

اللغات المفسرة واللغات المترجمة[عدل]

يمككنا التفريق بين اللغات المفسرة واللغات المترجمة عن طريق المثال البسيط التالي: لنفرض أن لدينا شخص يلقي خطاب باللغة الإنجليزية، هناك طريقتان لترجمة ما يقوله:

  • إما أن يقوم المترجم بترجمة ما يقوله المتحدث أولاً بأول: أي قراءة مقطع بلغته ثم ترجمته: وهذا يمثل حالة اللغة المفسرة
  • أو أن يقوم المتحدث بإلقاء خطابه كاملاً، ثم يلقي المترجم ترجمة كاملة لهذا الخطاب بعد أن ينهي المتحدث كلامه: وهذا يمثل حالة اللغات المترجمة

مميزات لغات البرمجة المفسرة[عدل]

اللغات المفسرة تعطي مرونة إضافية عن اللغات المترجمة. ومن الميزات التي يكون تنفيذها أسهل في حالة التفسير عنه في حالة الترجمة:

  • عدم الاعتماد على المنصة التي يتم التشغيل عليها
  • القدرة على تغيير التعامل مع أنواع البيانات أثناء التنفيذ (بالإنجليزية: Reflection)
  • تحديد نوع البيانات المستخدم في وقت التشغيل فقط (بالإنجليزية: Dynamic Typing)
  • صغر حجم البرامج، وذلك لأن المفسر تكون له حرية اختيار التعليمات (بالإنجليزية: Instructions) التي يتحول إليها البرنامج
  • القدرة على تحديد وتغيير مجال المتغير (بالإنجليزية: Variable Scope) في وقت التنفيذ

عيوب لغات البرمجة المفسرة[عدل]

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

أمثلة للغات عادةً ما تكون مفسرة[عدل]

لغات تترجم عادةً إلى لغة آلة افتراضية[عدل]

العديد من اللغات تترجم أولاً إلى لغة آلة افتراضية والتي تفسر أو تترجم بدورها إلى لغة الآلة

انظر أيضاً[عدل]