المتابعون للمدونة

الاثنين، 2 يناير 2017

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


يقول منهج الصف الثالث الإعدادي إن لغة فيجيوال بيزيك تنفرد عن سائر لغات البرمجة بأن لها مترجما ومفسرا.. وهو قول يحتاج تفصيلا:

كانت إصدارات فيجوال بيزيك السابقة لدوت نت (كفيجيوال بيزيك 6 مثلا) تستخدم مفسرا Interpreter أثناء تصميم واختبار البرنامج، لهذا كان المبرمج يستطيع تشغيل البرنامج بدون أن ينشئ له ملفا تنفيذيا .Exe .. السبب في هذا أن المفسر ـ كما قلنا ـ يترجم أمرا واحدا في كل مرة وينفذه مباشرة، لهذا لا يحتاج إلى ملف تنفيذي.. هذه الطريقة جعلت مبرمج فيجيوال بيزيك 6 قادرا على تشغيل البرنامج بدون التأكد من خلوه تماما من الأخطاء، ما يعني سرعة بدء تشغيل البرنامج مهما كان حجمه كبيرا، فلا يوجد أي وقت ضائع في فحص كل الأخطاء وترجمة كل الأوامر.. لكن في مقابل سرعة بدء التشغيل، فإن المفسر كان يجعل تنفيذ البرنامج أبطأ، لأن عملية الترجمة تحدث لكل أمر أثناء التشغيل ومن ثم يتم تنفيذه.

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

أما المترجم Compiler، فإنه يقوم بتحويل البرنامج بالكامل إلى لغة الآلة وإنشاء ملف تنفيذي قبل أن يبدأ في تنفيذ أي أمر.. لهذا السبب يكون تشغيل المبرمج للبرنامج لأول مرة أبطأ لأن المترجم يترجم البرنامج كاملا قبل تشغيله، لكن تنفيذ البرنامج بعد ذلك يكون أسرع، لأن كل الأوامر تمت ترجمتها من قبل.. أيضا لا تتم عملية الترجمة إلا بعد تصحيح جميع الأخطاء الموجودة في الكود.. لهذا تكون عملية تصحيح الأخطاء أصعب.

والجدول التالي يعرض مقارنة بين المفسر والمترجم:

 

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

 

وتستخدم فيجيوال بيزيك 6 المترجم والمفسر معا، فالمبرمج يستخدم المفسر في مرحلة كتابة الكود واختباره وتصحيح أخطائه، وبذلك يضمن تشغل البرنامج بسرعة لاختباره، مع سهولة تصحيح الأخطاء الموجودة به.. وبعد أن ينتهي المبرمج نهائيا من كتابة البرنامج ويضمن خلوه من الأخطاء، يطلب من المترجم الخاص بفيجيوال بيزيك 6 ترجمة البرنامج كاملا، وذلك للحصول على الملف التنفيذ للبرنامج .exe ، حتى يمكن توزيع البرنامج إلى المستخدمين، حيث يضمن المبرمج في هذه الحالة أن البرنامج سيعمل بشكل أسرع عند المستخدم، لأنه ملف مترجم Compiled وخال من الأخطاء.. وبهذا يستفيد المبرمج من مميزات المفسر والمترجم مع تلافى عيوب كل منهما.

لكن.. ماذا عن فيجيوال بيزيك دوت نت؟

في الحقيقة، يختلف الأمر في بيئة دوت نت عن فيجيوال بيزيك 6:

1- فعند تشغيل البرنامج في فيجيوال بيزيك دوت نت يتأكد المترجم من عدم وجود أية أخطاء في البرنامج، ومن ثم يقوم بترجمة الكود كاملا وإنشاء ملف تنفيذي وتشغيله.. إذن ففيجيوال بيزيك دوت نت تستخدم المترجم بشكل أساسي.

2- لكن فيجيوال بيزيك دوت نت تمنح المبرمج أيضا بعض إمكانيات المفسر، فبعد أن يكتب المبرمج سطرا من الكود وينتقل إلى سطر جديد، ودون أن يقوم المبرمج بتشغيل البرنامج، تقوم فيجيوال بيزيك دوت نت بفحص أخطاء هذا السطر وتنبيه المبرمج إليها.. وإذا حدث خطأ في البرنامج أثناء تشغيله يتم إيقاف البرنامج عند السطر الذي سبب الخطأ، حيث يمكن للمبرمج تصحيح هذا الخطأ ومواصلة تنفيذ البرنامج.

3- لكن الملحوظة الهامة التي يجب أن تنتبه إليها، هي أن مترجم فيجيوال بيزيك دوت نت لا يترجم الكود إلى لغة الآلة، بل إلى لغة تسمى "اللغة الوسيطة" Intermediate Language أو اختصارا IL.. وتعرف أيضا باسم لغة ميكروسوفت الوسيطة MSIL.. وعند تشغيل الملف التنفيذي المكتوب بهذه اللغة، يقوم جزء من بيئة دوت نت يسمى إطار العمل Framework، باستخدام مفسر خاص اسمه المفسر الفوري JIT  لتحويل كل سطر من اللغة الوسطية إلى لغة الآلة وتنفيذه.. لهذا السبب يجب أن يكون إطار عمل دوت نت .NET Framework موجودا على الجهاز الذي تريد تشغيل برنامجك عليه.. الحكمة من وراء هذا هي جعل برنامجك قادرا على العمل على أي نظام تشغيل يوجد عليه إطار العمل، بدلا من أن يقتصر عمل برنامجك على نظام الويندوز فحسب، فإطار العمل سيترجم برنامجك إلى لغة الآلة المناسبة التي يفهمها نظام التشغيل.

 

من كتاب المبرمج الصغير، للصف الثالث الإعدادي، للتنزيل مجانا:


 

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر