ما الفرق بين المترجم والمفسر Compiler VS Interpreter

اقرأ في هذا المقال


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

ما هو المترجم Compiler

المترجم هو برنامج كمبيوتر يحوّل الكود (التعليمات البرمجية) المكتوب بلغة برمجة عالية المستوى إلى كود الآلة، وهو برنامج يقوم بترجمة الكود الذي يمكن قراءته من قبل الإنسان إلى لغة يفهمها معالج الكمبيوتر (ثنائي 1 و 0 بت)، يعالج الكمبيوتر كود الآلة لأداء المهام المقابلة.

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

ما هو المُفسر Interpreter

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

الفرق بين المترجم والمُفسر

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

وظائف المترجم

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

وظائف المُفسر

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

المصدر: Compiler vs Interpreter: Complete Difference Between Compiler and InterpreterDifference between Compiler and InterpreterDifference Between Compiler and Interpreter: Compiler Vs Interpreter


شارك المقالة: