_ Interpreter
_ Compiler
أرجو إيضاح الفرق بينهما وأيهما أفضل ؟!
ما هو الفرق بين المترجم Compiler و المفسر Interpreter ؟
__________________________________________
المترجم Compiler والمفسر Interpreter في واقع الأمر عبارة عن برنامجين يقومان بنفس الغرض، وهو المتمثل في تحويل الأوامر المكتوبة بإحدى لغات البرمجة العالية المستوى high level language من قبيل جافا و سي شارب و سي بلس بلس، إلى لغة الآلة Machine Language (أوامر مكتوبة بالبيانات الثنائية Binary Data أي سلاسل من الأصفار والآحاد).
طيب إن كان لهما نفس الدور فلماذا يوجد مترجم Compiler ومفسر Interpreter ولماذا لا يوجد أحدهما ونرح أدمغتنا من الصداع ؟
هدىء أعصابك وتعال بنا في جولة صغيرة لنستعرض أهم الفروق بين البرنامجين وعلى السبيل الذي يسلكه كلاهما من أجل تحويل التعليمات والأوامر العالية المستوى (والتي تسمى أيضا البرنامج المصدري Source Program) إلى أوامر مكتوبة بلغة الآلة.
المترجم Compiler:
_____________
من خلال اسمه يتضح جليا أنه يقوم بعملية الترجمة، فهو يقوم بفحص البرنامج المكتوب بلغة البرمجة كاملا، ثم يقوم بترجمته إلى برنامج مكتوب بلغة الآلة لكي تتمكن وحدة معالجة البيانات CPU من تنفيذه و لا يظهر الأخطاء الموجودة في البرنامج المصدري إلا بعد الانتهاء من عملية تحويله إلى لغة الآلة.
المفسر Interpreter:
_______________
يقوم تقريبا بنفس الدور الذي يقوم به المترجم مع اختلاف بسيط، يتجلى في أن المفسر لا يقوم بتحويل الكود المصدري إلى كود الآلة مباشرة وإنما يقوم بتحويله إلى لغة وسيطة intermediate code، بعد ذلك يتم تحويل كل جزء من أجزاء الكود الناتج إلى لغة الآلة، ثم يتم تنفيذ هذه الأجزاء أمرا بأمر Statement by statement، وأي أمر يضم خطأً يؤدي إلى توقيف عملية تحويل الأجزاء المتبقية
التعليقات