الرئيسيةعريقبحث

لغة مفسرة


☰ جدول المحتويات


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

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

اللغات المفسرة واللغات المترجمة

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

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

مميزات لغات البرمجة المفسرة

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

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

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

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

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

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

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

انظر أيضاً

موسوعات ذات صلة :