لغة مفسرة
اللغة المفسرة Interpreted language، هي لغة برمجة بحيث يتم تنفيذ البرنامج بشكل غير مباشر interpreted من قبل مفسر البرنامج. اللغة المفسرة interpreted هي عكس اللغات المترجمة compiled من حيث العمل فاللغات المترجمة بحيث تقوم بترجمة الكود بشكل كامل وتحويله الى لغة آلة من ثم يتم تنفيذ التعليمات من قبل المعالج . نظرياً فأن اي لغة برمجة يمكن ان تكون مفسرة او مترجمة او كلاهما بنفس الوقت .
يوجد العديد من لغات البرمجة تكون لغة مفسرة ومترجمة بنفس الوقت كما في اللغات التالية Lisp, Pascal, C, BASIC, Python
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
اللغة المفسرة والمترجمة
يمككنا التفريق بين اللغات المفسرة واللغات المترجمة عن طريق المثال البسيط التالي: لنفرض أن لدينا شخص يلقي خطاب باللغة الإنجليزية، هناك طريقتان لترجمة ما يقول
- إما أن يقوم المترجم بترجمة ما يقوله المتحدث أولاً بأول: أي قراءة مقطع بلغته ثم ترجمته: وهذا يمثل حالة اللغة المفسرة
- أو أن يقوم المترجم بإلقاء خطابه كاملاً، ثم يلقي المترجم ترجمة كاملة لهذا الخطاب بعد أن ينهي المتحدث كلامه: وهذا يمثل حالة اللغات المترجمة
مميزات لغات البرمجة المفسرة
اللغات المفسرة تعطي مرونة إضافية عن اللغات المترجمة. ومن اللميزات التي يكون تنفيذها أسهل في حالة التفسير عنه في حالة الترجمة:
- عدم الاعتماد على المنصة التي يتم التشغيل عليها
- القدرة على تغيير التعامل مع أنواع البيانات أثناء التنفيذ إنگليزية: Reflection
- تحديد نوع البيانات المستخدم في وقت التشغيل فقط إنگليزية: Dynamic Typing
- صغر حجم البرامج، وذلك لأن المفسر تكون له حرية اختيار التعليمات إنگليزية: Instructions التي يتحول إليها البرنامج
- القدرة على تحديد وتغيير مجال المتغير إنگليزية: Variable Scope في وقت التشغيل
عيوب لغات البرمجة المفسرة
العيب الرئيسي في تفسير لغات البرمجة هو أنه أبطأ بكثير عند التنفيذ من تنفيذ لغة الآلة مباشرةً في المعالج عند اللغات المترجمة. وقد تستخدم الترجمة في الوقت المناسب لتحسين الأداء عن طريق ترجمة الأجزاء المكررة من الكود المفسر إلى لغة الآلة.
أمثلة للغات عادةً ما تكون مفسرة
- APL
- صفحات الخادم النشطة
- بيسيك
- كوبول
- نظم حل المعادلات:
- Euphoria
- Forth
- Game Maker Language
- Inform
- J
- Lava
- بيرل
- بي إتش بي
- ليسب
- Scheme
- لغة اللوجو
- MUMPS
- لغة البرمجة آر
- روبي
- JRuby
- Smalltalk
- Bistro
- Dolphin Smalltalk
- F-Script
- Little Smalltalk
- Squeak
- IBM VisualAge
- VisualWorks
- لغات البرمجة النصية
- ECMAScript
- أكشن سكربت
- E4X
- جافا سكريبت
- JScript
- WebDNA
- ECMAScript
- الجداول الممتدة
- S
- Tcl
- XOTcl
- XMLmosaic
لغات تترجم عادةً إلى لغة آلة افتراضية
العديد من اللغات تترجم أولاً إلى لغة آلة افتراضية والتي تفسر أو تترجم بدورها إلى لغة الآلة
- جافا
- Groovy
- Join Java
- كولدفيوشن
- لوا
- إطار عمل دوت نت
- Pike
- بايثون
- Visual FoxPro