أحمد دوميBTEC IT
مقارنةالبرمجةمبني على مادة أحمد دومي

المترجم والمفسّر (Compiler vs Interpreter): الفرق ودور Bytecode والآلة الافتراضية

Compiler vs Interpreter

الجواب المختصر

المترجم (Compiler) يحوّل البرنامج كاملًا مرة واحدة إلى ملف تنفيذي، فيكون التشغيل سريعًا وتظهر الأخطاء غالبًا عند البناء، كما في C/C++. والمفسّر (Interpreter) يشغّل الكود خطوة بخطوة أثناء التنفيذ، فيناسب التجارب والتطوير السريع لكنه أبطأ نسبيًا، كما في Python غالبًا. وبعض اللغات مثل Java تجمع الطريقتين: تحوّل الكود إلى Bytecode يعمل على آلة افتراضية.

شرح مفصّل

تتحول الشيفرة التي نكتبها إلى شيء يفهمه الحاسوب بإحدى طريقتين. المترجم (Compiler) يحوّل البرنامج كاملًا مرة واحدة إلى ملف تنفيذي أو كود آلة، فيكون التشغيل سريعًا لأن التحويل حصل مسبقًا، وتظهر الأخطاء غالبًا في مرحلة البناء، كما في C/C++ (تكتب الكود ← Compile ← ملف exe ← تشغّله). المفسّر (Interpreter) يشغّل الكود خطوة بخطوة أثناء التنفيذ، وهو مناسب للتجارب السريعة والتطوير السريع لكنه أبطأ نسبيًا، كما في Python غالبًا. وبعض اللغات (مثل Java) تحوّل الكود إلى Bytecode يعمل على آلة افتراضية (JVM) فتكون محمولة بين الأنظمة.

المترجمالمفسّرBytecode + آلة افتراضية
كيف يعمل؟يحوّل البرنامج كاملًا مرة واحدة إلى ملف تنفيذييشغّل الكود خطوة بخطوة أثناء التنفيذيحوّل الكود إلى Bytecode ثم يُشغَّل على آلة افتراضية
السرعةالتشغيل سريع (التحويل تم مسبقًا)أبطأ نسبيًاتستفيد من تحسينات أثناء التشغيل
الأخطاءتظهر غالبًا أثناء البناءتظهر أثناء التنفيذ—
مثالC/C++Python غالبًاJava مع JVM
ميزةملف جاهز للتشغيلمناسب للتجارب والتطوير السريعمحمولة بين الأنظمة

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

مثال لتذكّر الفرق

المترجم كمن يترجم كتابًا كاملًا ثم يسلّمه جاهزًا للقراءة؛ والمفسّر كمترجم فوري يترجم جملة بجملة أثناء الحديث. الأول أسرع عند القراءة، والثاني أنسب للمحادثة السريعة والتجارب.

  • لغة تُترجم قبل التشغيل ← أخطاء البناء تظهر مبكرًا.
  • لغة تُفسَّر ← تجرّب وتصحّح بسرعة لكن بتشغيل أبطأ غالبًا.

المصطلحات: عربي ↔ English

مترجم
Compiler
مفسّر
Interpreter
كود وسيط
Bytecode
آلة افتراضية
Virtual Machine

كل المصطلحات في القاموس ←

لماذا يهمّ هذا في BTEC؟

يظهر الفرق في ثلاثة أسئلة: متى تظهر الأخطاء؟ وكم سرعة التشغيل؟ وما الأنسب للتجارب؟ والجدول يجيب عنها.

أسئلة تجيب عنها هذه الصفحة

  • ما الفرق بين المترجم والمفسر؟
  • ما هو Bytecode؟

عن كاتب الصفحة

أحمد دومي — Ahmad Domi

مدرّس BTEC IT · الأردن

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