النشرة الأسبوعية
📬 نشرة المخبر الأسبوعية: خلاصة التقنية في خمس دقائق، كل أحد صباحاً.انضم مجاناً
مصطلح ببساطة

Compiler و Interpreter: كيف يفهم الكمبيوتر ما نكتبه؟

الكمبيوتر لا يفهم لغتنا مباشرة. هنا يأتي دور Compiler و Interpreter، كل منهما بطريقته الخاصة ليحول الكود إلى أوامر يفهمها الجهاز.

· 3 دقائق قراءة · المخبر المعلوماتي

مقدمة: لغة البشر ولغة الكمبيوتر

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

هنا يأتي دور «المترجمين» الذين يسدون هذه الفجوة الكبيرة بين لغتنا ولغة الكمبيوتر. هؤلاء المترجمون هم Compiler و Interpreter، وكل منهما يعمل بطريقة مختلفة ليجعل جهازك يفهم ما تريده.

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

المترجم الشامل: Compiler

الـ Compiler، أو «المترجم»، يعمل كأنه مترجم يأخذ كتاباً كاملاً بين يديه. يقرأ كل صفحة وكل كلمة في برنامجك الذي كتبته، ثم يحوله بالكامل إلى نسخة جديدة ومكتملة بلغة الآلة.

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

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

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

لغات مثل C++ و C تعتمد بشكل كبير على الـ Compiler لتقديم أعلى أداء ممكن، وهي تستخدم في بناء أنظمة التشغيل والألعاب المعقدة.

المترجم الفوري: Interpreter

أما الـ Interpreter، أو «المفسّر»، فهو يشبه المترجم الفوري في مؤتمر دولي. لا ينتظر حتى يكتمل الكلام كله ليترجمه، بل يترجم كل جملة أو سطر من الكود فوراً وبشكل مباشر، ثم ينفذها الكمبيوتر في نفس اللحظة.

تخيل أنك تستمع إلى متحدث، والمترجم يجلس بجانبه ويترجم كلامه لك كلمة بكلمة في نفس اللحظة التي يتحدث فيها. هذه العملية تتكرر لكل سطر في الكود.

هذا يجعل عملية اكتشاف الأخطاء أسهل وأسرع بكثير. إذا كان هناك خطأ في سطر معين، يخبرك به الـ Interpreter فوراً عند وصوله إلى ذلك السطر، مما يسهل عليك تصحيحه.

كما يمنح المطورين مرونة كبيرة لتعديل الكود وتشغيله فوراً لرؤية النتائج والتأثيرات، دون الحاجة إلى انتظار عملية ترجمة كاملة.

لكن هذه المرونة تأتي على حساب السرعة. بما أن الترجمة تحدث في كل مرة يتم فيها تشغيل البرنامج، فإن الأداء يكون أبطأ قليلاً مقارنة بالبرامج المترجمة بالكامل. فالبرنامج يحتاج إلى الـ Interpreter ليعمل في كل مرة.

لغات مثل Python و JavaScript و Ruby تستخدم الـ Interpreter بشكل أساسي، وهي شائعة في تطوير الويب والسكريبتات التي تتطلب تعديلات سريعة.

متى نختار هذا ومتى نختار ذاك؟

الاختيار بين Compiler و Interpreter ليس قراراً عشوائياً، بل يعتمد على الغرض من البرنامج واحتياجات المشروع.

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

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

كل منهما له مكانه وأهميته البالغة في عالم البرمجة، ويكمل أحدهما الآخر ليمنحنا مجموعة واسعة من الأدوات لبناء كل أنواع البرامج.

في المرة القادمة التي تستخدم فيها تطبيقاً، هل ستفكر في الطريقة التي يفهم بها الكمبيوتر أوامرك، وما إذا كان يعتمد على Compiler أم Interpreter؟

ماذا يعني هذا لك؟

  • إذا كان الأداء والسرعة هما أولويتك، فغالباً ما تعتمد على برامج مبنية باستخدام Compiler.
  • للتطوير السريع والتعديلات المتكررة، قد تجد أن برامج Interpreter هي الأنسب لك.
  • فهمك للفرق يساعدك على تقدير كيف تعمل البرامج المختلفة التي تستخدمها يومياً.

اقرأ أيضاً

انضم لنشرة المخبر

خلاصة التقنية في خمس دقائق، كل أحد صباحاً.

الجنس
ماذا يهمك؟ (اختر ما شئت)

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