اقرأ في هذا المقال
المترجم والمُفسّر هي برامج تساعد في تحويل اللغة عالية المستوى (كود المصدر) إلى أكواد آلة لكي تفهمها أجهزة الكمبيوتر. عادة ما تتم كتابة برامج الكمبيوتر بلغات عالية المستوى، واللغة عالية المستوى هي اللغة التي يمكن أن يفهمها البشر. لتوضيح ذلك، تحتوي هذه اللغات على كلمات وعبارات من اللغات الشائعة الاستخدام مثل الإنجليزية، مع ذلك، لا تستطيع أجهزة الكمبيوتر فهم اللغات عالية المستوى كما نفعل نحن البشر. يمكنهم فقط فهم البرامج التي تم تطويرها في الأنظمة الثنائية المعروفة باسم كود الآلة. بادئ ذي بدء، عادة ما تتم كتابة برنامج الكمبيوتر بلغة عالية المستوى توصف بأنها كود المصدر، ويجب تحويل هذا الكود إلى لغة آلة وهنا يأتي دور المترجم والمُفسّر.
ما هو المترجم Compiler
المترجم هو برنامج كمبيوتر يحوّل الكود (التعليمات البرمجية) المكتوب بلغة برمجة عالية المستوى إلى كود الآلة، وهو برنامج يقوم بترجمة الكود الذي يمكن قراءته من قبل الإنسان إلى لغة يفهمها معالج الكمبيوتر (ثنائي 1 و 0 بت)، يعالج الكمبيوتر كود الآلة لأداء المهام المقابلة.
يجب أن يلتزم المترجم بقاعدة بناء الجملة الخاصة بلغة البرمجة التي كُتب بها، مع ذلك، فإن المترجم ليس سوى برنامج ولا يمكنه إصلاح الأخطاء الموجودة في هذا البرنامج. لذلك، إذا قمت بخطأ ما، فأنت بحاجة إلى إجراء تغييرات في بناء جملة برنامجك. خلاف ذلك، لن يتم تجميعها.
ما هو المُفسر Interpreter
المُفسر أو المترجم الفوري هو برنامج كمبيوتر والذي يُحوّل كل جملة في البرنامج عالي المستوى إلى كود الآلة، يتضمن الكود المصدري تعليمات البرمجية المُجمعة مسبقًا والنصوص. يقوم كل من المترجم والمُفسر بنفس المهمة (وهي تحويل لغة البرمجة عالية المستوى إلى كود الآلة). مع ذلك، سيقوم المترجم بتحويل الكود إلى كود آلة (أي إنشاء ملف exe.) قبل تشغيل البرنامج، لكن يقوم المُفسر بتحويل الكود إلى كود الآلة عند تشغيل البرنامج.
الفرق بين المترجم والمُفسر
أساس الاختلاف | المترجم | المُفسر |
خطوات البرمجة |
|
|
الميزات | تمت ترجمة كود البرنامج بالفعل إلى كود الآلة. وبالتالي ، فإن وقت تنفيذ الكود أقل. | المُفسر أسهل في الاستخدام، خاصة للمبتدئين. |
العيوب | لا يمكنك تغيير البرنامج دون الرجوع إلى الكود المصدر. | يمكن تشغيل البرامج المُفسرة على أجهزة الكمبيوتر التي لديها مُفسر مماثل. |
كود الآلة | يتم تخزين لغة الآلة كـ كود الآلة على القرص الصلب. | عدم حفظ كود الآلة على الإطلاق. |
وقت التشغيل | تشغيل الكود المُترجم بشكل أسرع. | تشغيل الكود المفسر بشكل أبطأ. |
النموذج | يعتمد على نموذج تحميل رابط ترجمة اللغة. | يعتمد على طريقة التفسير. |
توليد البرنامج | يوّلد برنامج المخرجات (في شكل ملف امتداده exe.) والذي يمكن تشغيله بشكل مستقل عن البرنامج الأصلي. | لا يوّلد برنامج مخرجات، لذلك يقوم بتقييم البرنامج المصدر في كل مرة أثناء التنفيذ. |
التنفيذ | تنفيذ البرنامج منفصل عن التجميع، حيث يتم تنفيذ البرنامج فقط بعد تجميع برنامج المخرجات بالكامل. | يعد تنفيذ البرنامج جزءًا من عملية التفسير، لذلك يتم تنفيذه سطراً بسطر. |
متطلبات الذاكرة | يتم تنفيذ البرنامج الهدف بشكل مستقل ولا يتطلب وجود المترجم في الذاكرة. | المُفسّر موجود في الذاكرة أثناء التفسير. |
الأنسب لـ | مقيد بالجهاز المستهدف المحدد ولا يمكن نقله. وتعد لغتي (C و++C) هما أكثر لغات البرمجة شيوعًا والتي تستخدم نموذج التجميع. | لبيئات الويب، حيث تكون أوقات التحميل مهمة. نظرًا لاستغراق المترجم وقتًا أطول نسبيًا لتجميع الأكواد الصغيرة التي قد لا يتم تشغيلها لعدة مرات. في مثل هذه الحالات، يكون المُفسر أفضل. |
تحسين الكود | يرى المترجم الكود بالكامل مقدمًا. ومن ثم، فإنه يقوم بالعديد من التحسينات التي تجعل الكود يعمل بشكل أسرع. | يرى المُفسر الكود سطرًا بسطر، بالتالي فإن التحسينات ليست قوية مثل المترجم. |
الكتابة الديناميكية | صعب التنفيذ؛ لأن المترجم لا يستطيع التنبؤ بما يحدث في الوقت المناسب. | تدعم اللغات المفسرة الكتابة الديناميكية. |
الاستعمال | الأنسب لبيئة الإنتاج. | الأنسب لبيئة البرنامج والتطوير. |
تنفيذ الخطأ | يعرض المترجم جميع الأخطاء والتحذيرات في وقت التجميع. لذلك، لا يمكنك تشغيل البرنامج دون إصلاح الأخطاء. | يقرأ المُفسر جملة واحدة ويظهر الخطأ إن وجد، يجب عليك تصحيح الخطأ لتفسير السطر التالي. |
الأخطاء | عرض جميع الأخطاء البرنامج بعد تجميعها، وكلها في نفس الوقت. | يعرض كل أخطاء السطر البرمجي واحدًا تلو الآخر. |
اللغات المستخدمة | تستخدم اللغات (C و ++C و #C و Scala و Java) جميعها مترجمًا. | تستخدم لغة (PHP و Perl و Ruby) مُفسرًا. |
وظائف المترجم
- يقرأ المترجم الكود المصدري، ويخرج الكود القابل للتنفيذ.
- يترجم البرامج المكتوبة بلغة عالية المستوى إلى تعليمات يستطيع الكمبيوتر فهمها. فهو يحوّل النص الذي يكتبه المبرمج إلى تنسيق يمكن أن تفهمه وحدة المعالجة المركزية.
- عملية التجميع معقدة نسبيًا، يقضي الكثير من الوقت في تحليل البرنامج ومعالجته.
- النتيجة القابلة للتنفيذ هي شكل من أشكال الكود الثنائية الخاصة بالجهاز.
وظائف المُفسر
- يقوم المُفسر بتحويل الكود المصدر سطراً بسطر أثناء وقت التشغيل.
- المُفسر يترجم برنامجًا مكتوبًا بلغة عالية المستوى إلى لغة على مستوى الآلة.
- يسمح المُفسر بتقييم البرنامج وتعديله أثناء تنفيذه.
- يتم قضاء وقت أقل نسبيًا في تحليل البرنامج ومعالجته.
- تنفيذ البرنامج بطيء نسبيًا مقارنة بالمترجم.